Requête pour convertir de datetime à date mysql

j'essaie d'obtenir la partie date d'un champ datetime. Je sais que je peux l'obtenir avec date_format, mais qui renvoie une chaîne ou "varchar". Comment puis-je convertir le résultat en date et non pas comme varchar?

c'est ma requête retournant le varchar:

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

j'ai essayé plusieurs combinaisons à partir de cette question, mais je ne pouvais pas le faire fonctionner:

requête mysql - format de date de sortie?

Toute aide est appréciée.

26
demandé sur Community 2011-01-19 23:52:04
la source

5 ответов

Essayez de le jeter comme une DATE

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
41
répondu Chandu 2011-01-19 23:55:27
la source

utiliser la fonction de DATE :

SELECT DATE(orders.date_purchased) AS date
31
répondu OMG Ponies 2011-01-19 23:55:18
la source

la solution des poneys cybernétiques ou OMG fonctionnera. Le problème fondamental est que la fonction DATE_FORMAT() renvoie une chaîne de caractères et non une date. Quand vous avez é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 selon cette chaîne de format, et au lieu d'appeler cette colonne date_purchased , appelez-la"Date". Mais cette colonne ne contiendrait plus de date, elle contiendrait chaîne. (Parce que Date_Format() renvoie une chaîne de caractères, pas une date.)

je ne pense pas que ce soit ce que tu voulais faire, mais c'est ce que vous faisiez.

ne confondez pas l'apparence d'une valeur avec ce qu'elle est.

5
répondu Mike Sherrill 'Cat Recall' 2018-09-12 16:23:50
la source

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
répondu Dedi Koswara 2016-12-08 15:46:41
la source

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

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

enter image description here

1
répondu manish1706 2017-05-16 11:19:46
la source

Autres questions sur