web-dev-qa-db-fra.com

Comment convertir une chaîne en date dans mysql?

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

131
Joseph Lafuente

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

233
bluefoot
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
42
Bala R

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

9
Bharathiraja

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

8
aalhanane