JMacedo 0 Denunciar post Postado Abril 28, 2008 Boa tarde, caros colegas imasters: estou com um problema ao retornar do mysql,a data formatada mas em ordem DESC. Uso a função date_format(FROM_UNIX_TIME,(noti_data),'%d/%m/%Y')as noti_data order by noti_data DESC,porem o comando sql nao ordena as datas no formato:d/m/Y somente se eu colocar %Y/%m/d; segue o codigo abaixo: $sql="select noti_id, noti_foto, noti_titulo, noti_resumo, DATE_FORMAT(FROM_UNIXTIME(noti_data),'%Y/%m/%d')as noti_data from noticias ORDER BY noti_data DESC"; O resultado que preciso é trazer as datas ordenadas em ordem decrescente mas no formato d/m/Y desde já agradeço a ajuda dos colegas. att, Joao Henrique Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Abril 28, 2008 Você não pode usar a data formatada na hora da ordenação, para ordernar, tem que estar no formato inglês. Então, você pode formatar a data no SELECT e usar um ALIAS para essa data formatada, e no ORDER BY usar o nome do campo normal. ;) Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Abril 29, 2008 $sql="select noti_id, noti_foto, noti_titulo, noti_resumo, DATE_FORMAT(FROM_UNIXTIME(noti_data),'%Y/%m/%d')as fnoti_data from noticias ORDER BY noti_data DESC";a sua data formatada agora é "fnoti_data" e a data que está na database, usada pra fazer a ordenação é noti_data. Imaginando que o seu campo é um DATE ou DATETIME claro ;)Se for, não tem necessidade utilizar FROM_UNIXTIME(), agora se for um int, o ORDER BY vai dar na mesma, só lembre de colocar o campo como 'unsigned' PS: O UNIX TIME é sempre menor que unsigned int, então não tem utilidade utilizar um bigint pra isso, é excesso de bytes pra nada Compartilhar este post Link para o post Compartilhar em outros sites
JMacedo 0 Denunciar post Postado Abril 30, 2008 Você não pode usar a data formatada na hora da ordenação, para ordernar, tem que estar no formato inglês. Então, você pode formatar a data no SELECT e usar um ALIAS para essa data formatada, e no ORDER BY usar o nome do campo normal. ;) ok cara, usei o campo normal no select e no order by e no echo utilizei date('d/m/Y',noti_data);Valeu.agora funcionou! Compartilhar este post Link para o post Compartilhar em outros sites