Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JMacedo

retornando data no formato bigint

Recommended Posts

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

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

$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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.