web-dev-qa-db-fra.com

Requête pour convertir de date/heure en date mysql

J'essaie d'obtenir la partie date d'un champ date/heure. Je sais que je peux l'obtenir avec date_format, mais cela retourne une chaîne ou un champ "varchar". Comment puis-je convertir le résultat à la date et non en tant que varchar?

Voici ma requête renvoyant le varchar:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date  

J'ai essayé plusieurs combinaisons de cette question, mais ne pouvais pas le faire fonctionner: 

Requête mysql - formater la date sur la sortie?

Toute aide est appréciée.

29
chupeman

Essayez de le lancer comme une date

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
47
Chandu

Utilisez la fonction DATE :

SELECT DATE(orders.date_purchased) AS date
31
OMG Ponies

La solution Cybernate ou OMG Ponies fonctionnera. Le problème fondamental est que la fonction DATE_FORMAT() renvoie une chaîne, pas une date. Quand tu as écrit 

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 

Je pense que vous demandiez essentiellement à MySQL d'essayer de formater les valeurs dans date_purchased en fonction de cette chaîne de formatage et de ne pas appeler cette colonne date_purchased, appelez-la "Date". Mais cette colonne ne contiendrait plus de date, elle contiendrait une chaîne. (Parce que Date_Format() renvoie une chaîne, pas une date.) 

Je ne pense pas que ce soit ce que tu voulais faire, mais c'est ce que tu faisais.

Ne confondez pas l'apparence d'une valeur avec sa valeur. 

syntaxe de date_format:

SELECT date_format(date_born, '%m/%d/%Y' ) as my_date FROM date_tbl

    '%W %D %M %Y %T'    -> Wednesday 5th May 2004 23:56:25
    '%a %b %e %Y %H:%i' -> Wed May 5 2004 23:56
    '%m/%d/%Y %T'       -> 05/05/2004 23:56:25
    '%d/%m/%Y'          -> 05/05/2004
    '%m-%d-%y'          -> 04-08-13
2
Dedi Koswara

Je vois les nombreux types d'utilisations, mais je trouve cette mise en page plus utile comme outil de référence:

SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');

 enter image description here

0
manish1706