Formato de data MySQL DD / MM / AAAA selecione query?

139

Estou um pouco confuso sobre como encomendar por formatos de data.

Para o formato, YYYY-MM-DDvocê faria isso:...ORDER BY date DESC...

Como você encomendaria DD/MM/YYYY?

Isso não está funcionando:

SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
K - A toxicidade no SO está crescendo.
fonte

Respostas:

152

Você pode usar STR_TO_DATE()para converter suas strings em valores de data do MySQL e ORDER BYo resultado:

ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')

No entanto, convém converter a coluna para o DATEtipo de dados em vez de usar cadeias.

eggyal
fonte
188

Adivinhando que você provavelmente só quer formatar a data de saída? então é isso que você está procurando

SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate 
FROM table 
ORDER BY date DESC 
LIMIT 0,14

Ou você realmente deseja classificar por dia antes do mês antes do ano?

caçador
fonte
1
Gostaria das 14 últimas datas / registros :) O formato no banco de dados é "DD / MM / AAAA"!
K - A toxicidade no SO está crescendo.
A data no banco de dados é um tipo de data real ou é um tipo de sequência?
caçador de
2
mysql> DESCRIBE Table;e cole a saída
trapper
DATE_FORMAT (data, '% a') fornecerá a abreviação do dia da semana. Eu usei isso para fazer alguns boxplots e outros no RStudio.
User208145 23/02/19
39
SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC
John Conde
fonte
3
Sou apenas eu ou %lnão funciona? Dá 12para todo mês e eu tive que mudar para %m.
25415 beroe
1
% l é para horas dev.mysql.com/doc/refman/5.5/en/… @beroe
10
SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");

OU

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");

SAÍDA é 10/05/2019 19:30

Mani
fonte
4

para o meu caso, isso funcionou

str_to_date(date, '%e/%m/%Y' )
Kishore Sahoo
fonte
4

Se a hora é importante, eu usei str_to_date(date, '%d/%m/%Y %T' ), o %Tmostra a hora no formato hh:mm:ss.

Davi RIbeiro
fonte
Não é referido como hora. %Tmostra o valor com o formato da hora. A propósito, você recebeu meu voto positivo.
Wolverine
3

PEDIR POR um tipo de data não depende do formato da data, o formato da data é apenas para mostrar, no banco de dados, os mesmos dados.

xdazz
fonte
O formato pode ser usado para classificar (se alguém realmente quiser, parece estranho para mim), mas essa classificação não pode ser baseada no índice, portanto [b] é caro [/ b]. Somente a classificação em colunas bem projetadas pode ser executada com o índice ( rápido) e otimizada por servidor
Jacek Cz