web-dev-qa-db-fra.com

Format de date MySQL JJ / MM / AAAA sélectionner une requête?

Je suis un peu confus sur la façon de commander par formats de date.

Pour le format YYYY-MM-DD vous feriez ceci: ...ORDER BY date DESC...

Comment voulez-vous commander par DD/MM/YYYY?

Cela ne fonctionne pas:

SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14
119
Karl Morrison

Vous pouvez utiliser STR_TO_DATE() pour convertir vos chaînes en valeurs de date MySQL et ORDER BY le résultat:

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

Toutefois, il serait judicieux de convertir la colonne en type de données DATE au lieu d'utiliser des chaînes.

131
eggyal

Vous avez probablement juste envie de formater la date de sortie? alors c'est ce que vous recherchez

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

Ou voulez-vous réellement trier par jour avant mois avant année?

161
trapper
SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC
36
John Conde

Utilisation:

SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y") AS 'NAME'
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'

Référence: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

31
Elton da Costa

Vous avez probablement juste envie de formater la date de sortie? alors c'est ce que vous recherchez

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

Ou voulez-vous réellement trier par jour avant mois avant année?

12
Vineet Sharma

ORDER BY un type de date ne dépend pas du format de date, le format de date est uniquement destiné à montrer, dans la base de données, ce sont les mêmes données.

3
xdazz

pour mon cas cela a fonctionné

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

Si l'heure est importante, j'ai utilisé str_to_date(date, '%d/%m/%Y %T' ), le %T affiche l'heure au format hh:mm:ss.

1
Davi RIbeiro