Comment convertir les éléments suivants en date d'insertion / mise à jour dans un champ TIMESTAMP
ou DATE
dans MySQL?
'15-Dec-09'
DATE_FORMAT()
est utilisé pour formater la date, mais pas l'inverse.
Comment convertir les éléments suivants en date d'insertion / mise à jour dans un champ TIMESTAMP
ou DATE
dans MySQL?
'15-Dec-09'
DATE_FORMAT()
est utilisé pour formater la date, mais pas l'inverse.
Vous souhaiterez peut-être utiliser l' STR_TO_DATE()
fonction. C'est l'inverse de l' DATE_FORMAT()
fonction.
STR_TO_DATE(str,format)
C'est l'inverse de l'
DATE_FORMAT()
fonction. Il prend une chaîne de caractèresstr
et une chaîne de formatformat
.STR_TO_DATE()
renvoie unDATETIME
de la valeur si la chaîne de format contient à la fois la date et l'heure de pièces, ou unDATE
ouTIME
de la valeur si la chaîne ne contient que de la date ou de l'heure de pièces. Si la date, l'heure ou la valeur datetime extrait destr
est illégal,STR_TO_DATE()
retoursNULL
et produit un message d'avertissement.
Exemple:
SELECT STR_TO_DATE('15-Dec-09', '%d-%b-%y') AS date;
+------------+
| date |
+------------+
| 2009-12-15 |
+------------+
1 row in set (0.00 sec)
Réponse très utile! J'avais oublié STR_TO_DATE (). Voici un tableau des codes pour ce deuxième paramètre incroyable, avec des exemples. Les sources sont mes cheatsheets , et la documentation MySQL pour DATE_FORMAT ()
- Bob Stein
-----examples-for------
1999-12-31 2000-01-02
23:59:58.999 03:04:05 identical to
------------ ---------- -------------
%a Fri Sun LEFT(DAYNAME(d),3)
%b Dec Jan LEFT(MONTHNAME(d),3)
%c 12 1 MONTH(d)
%D 31st 2nd DAYOFMONTH(d)+st,nd,rd
%d 31 02 LPAD(DAYOFMONTH(d),0,2)
%e 31 2 DAYOFMONTH(d)
%f 999000 000000 LPAD(MICROSECOND(t),6,0)
%H 23 03 LPAD(HOUR(t),2,0)
%h 11 03
%I 11 03
%i 59 04 LPAD(MINUTE(t),2,0)
59 4 MINUTE(t)
%j 365 002
%k 23 3 HOUR(t)
%l 11 3
%M December January MONTHNAME(d)
%m 12 01 LPAD(MONTH(d),2,0)
%p PM AM
%r 11:59:58 PM 03:04:05 AM
%S 58 05 LPAD(SECOND(t),2,0)
%s 58 05 LPAD(SECOND(t),2,0)
58 5 SECOND
%T 23:59:58 03:04:05
%U 52 01 LPAD(WEEK(d,0),2,0)
%u 52 00 LPAD(WEEK(d,1),2,0)
%V 52 01 RIGHT(YEARWEEK(d,2),2)
%v 52 52 RIGHT(YEARWEEK(d,3),2)
%W Friday Sunday DAYNAME(d)
%w 5 0 DAYOFWEEK(d)-1
%X 1999 2000 LEFT(YEARWEEK(d,2),4)
%x 1999 1999 LEFT(YEARWEEK(d,3),4)
%Y 1999 2000 YEAR(d)
%y 99 00 RIGHT(YEAR(d),2)
%% % %
%X%V 199952 200001 YEARWEEK(d,2)
%x%v 199952 199952 YEARWEEK(d,3)
e.g. '15-Dec-09' = DATE_FORMAT('2009-12-15', '%d-%b-%y')
e.g. '2009-12-15' = STR_TO_DATE('15-Dec-09', '%d-%b-%y')
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.