Créer une date à partir d'une chaîne de caractères
Voici une dernière fonction ayant trait au format des dates : STR_TO_DATE(date, format). Cette fonction est l'exact
contraire de DATE_FORMAT() : elle prend une chaîne de caractères représentant une date suivant le format donné, et renvoie la
DATETIME correspondante.
Exemples :
Code : SQL
SELECT STR_TO_DATE('03/04/2011 à 09h17', '%d/%m/%Y à %Hh%i') AS
StrDate,
STR_TO_DATE('15blabla', '%Hblabla') StrTime;
StrDate
StrTime
2011-04-03 09:17:00 15:00:00
Il est bien sûr possible d'utiliser GET_FORMAT() aussi avec STR_TO_DATE().
Code : SQL
SELECT STR_TO_DATE('11.21.2011', GET_FORMAT(DATE, 'USA')) AS
date_usa,
STR_TO_DATE('12.34.45', GET_FORMAT(TIME, 'EUR')) AS
heure_eur,
STR_TO_DATE('20111027133056', GET_FORMAT(TIMESTAMP,
'INTERNAL')) AS date_heure_int;
date_usa heure_eur date_heure_int
2011-11-21 12:34:45
2011-10-27 13:30:56
En résumé
De nombreuses fonctions permettent d'extraire un élément précis à partir d'une donnée temporelle : HOUR() permet
d'extraire l'heure, YEAR() extrait l'année,…
On peut formater une donnée temporelle facilement en utilisant DATE_FORMAT() et TIME_FORMAT() avec des
spécificateurs : "%M " représente le nom du mois, "%i" les minutes,…
Il existe cinq formats de date standard : EUR, ISO, USA, JIS et INTERNAL.
Pour que les noms des jours et des mois soient donnés en français, il faut exécuter cette commande : SET
lc_time_names = 'fr_FR';
Lorsque l'on a une donnée temporelle dans un format particulier, on peut la transformer en DATE, TIME ou DATETIME
avec STR_TO_FORMAT(), qui utilise les mêmes spécificateurs que DATE_FORMAT() et TIME_FORMAT().
Partie 4 : Fonctions : manipuler les dates
205/414
www.openclassrooms.com
Voici une dernière fonction ayant trait au format des dates : STR_TO_DATE(date, format). Cette fonction est l'exact
contraire de DATE_FORMAT() : elle prend une chaîne de caractères représentant une date suivant le format donné, et renvoie la
DATETIME correspondante.
Exemples :
Code : SQL
SELECT STR_TO_DATE('03/04/2011 à 09h17', '%d/%m/%Y à %Hh%i') AS
StrDate,
STR_TO_DATE('15blabla', '%Hblabla') StrTime;
StrDate
StrTime
2011-04-03 09:17:00 15:00:00
Il est bien sûr possible d'utiliser GET_FORMAT() aussi avec STR_TO_DATE().
Code : SQL
SELECT STR_TO_DATE('11.21.2011', GET_FORMAT(DATE, 'USA')) AS
date_usa,
STR_TO_DATE('12.34.45', GET_FORMAT(TIME, 'EUR')) AS
heure_eur,
STR_TO_DATE('20111027133056', GET_FORMAT(TIMESTAMP,
'INTERNAL')) AS date_heure_int;
date_usa heure_eur date_heure_int
2011-11-21 12:34:45
2011-10-27 13:30:56
En résumé
De nombreuses fonctions permettent d'extraire un élément précis à partir d'une donnée temporelle : HOUR() permet
d'extraire l'heure, YEAR() extrait l'année,…
On peut formater une donnée temporelle facilement en utilisant DATE_FORMAT() et TIME_FORMAT() avec des
spécificateurs : "%M " représente le nom du mois, "%i" les minutes,…
Il existe cinq formats de date standard : EUR, ISO, USA, JIS et INTERNAL.
Pour que les noms des jours et des mois soient donnés en français, il faut exécuter cette commande : SET
lc_time_names = 'fr_FR';
Lorsque l'on a une donnée temporelle dans un format particulier, on peut la transformer en DATE, TIME ou DATETIME
avec STR_TO_FORMAT(), qui utilise les mêmes spécificateurs que DATE_FORMAT() et TIME_FORMAT().
Partie 4 : Fonctions : manipuler les dates
205/414
www.openclassrooms.com
