J'ai une colonne string
qui joue le rôle de date
et je souhaite la sélectionner en tant que date
.
C'est possible?
Mon exemple de format de données serait; month/day/year
-> 12/31/2011
Comme indiqué à la rubrique MySQL utilisant une colonne de chaîne avec le texte de la date comme champ de date , vous pouvez le faire.
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM yourtable
Vous pouvez également gérer ces chaînes de date dans les clauses WHERE
. Par exemple
SELECT whatever
FROM yourtable
WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAYS
Vous pouvez gérer toutes sortes de dispositions de date/heure de cette façon. Veuillez vous référer à les spécificateurs de format pour la fonction DATE_FORMAT()
pour voir ce que vous pouvez mettre dans le deuxième paramètre de STR_TO_DATE()
.
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
utilisez la page ci-dessus pour faire référence à plus de fonctions dans MySQL
SELECT STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM table
disons par exemple utiliser la requête ci-dessous pour obtenir une sortie
SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table
Pour le format String, utilisez le lien ci-dessous
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
Voici deux autres exemples.
Pour sortir le jour, le mois et l'année, vous pouvez utiliser:
select STR_TO_DATE('14/02/2015', '%d/%m/%Y');
Qui produit:
2015-02-14
Pour également afficher l'heure, vous pouvez utiliser:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
Qui produit:
2017-02-14 23:38:12