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

Joseph Lafuente
la source

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().

bluefoot
la source
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')
Bala R
la source
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

Bharathiraja
la source
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

aalhanane
la source