comment convertir une chaîne en date dans mysql?


149

J'ai une stringcolonne qui agit comme un dateet je veux la sélectionner comme un date.

C'est possible?

Mon exemple de format de données serait; month/day/year->12/31/2011

Réponses:


258

Comme cela a été dit à MySQL En utilisant une colonne de chaîne avec du texte de date comme champ de date , vous pouvez faire

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

Vous pouvez également gérer ces chaînes de date dans des WHEREclauses. Par exemple

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

Vous pouvez gérer toutes sortes de dispositions de date / heure de cette façon. Veuillez vous référer aux spécificateurs de format de la DATE_FORMAT()fonction pour voir ce que vous pouvez mettre dans le deuxième paramètre de STR_TO_DATE().


6
Je pense que cela devrait être INTERVAL 7 DAY au lieu de DAYS
Feras Odeh

1
J'ai une colonne de caractères comme le format "jj-mmm-aaaa". Comment faire une requête au format "jj-mm-aaaa"?
MAX

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

Quelle est la date stockée au format JJ / MM / AAAA comme 31/11/1015?
Vipul Hadiya

2
@VipulHadiya modifie la chaîne de format de date pour qu'elle soit %d/%m/%Yainsi. STR_TO_DATE('31/11/1015', '%d/%m/%Y')Gardez à l'esprit que la sortie sera au YYYY-MM-DDformat en tant que DATE type de données.
fyrye

1
Les réponses en code uniquement sont de faible valeur sur StackOverflow. Veuillez améliorer cette bonne réponse.
mickmackusa le

11

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, utilisez la requête ci-dessous pour obtenir la 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


10

Voici deux autres exemples.

Pour afficher le jour, le mois et l'année, vous pouvez utiliser:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

Ce qui produit:

14/02/2015

Pour afficher également l'heure, vous pouvez utiliser:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

Ce qui produit:

14/02/2017 23:38:12

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.