Convertir une chaîne en format de date dans MySQL
Cet article vous guidera et vous guidera à travers différentes fonctions pour convertir une valeur de type chaîne qui agit comme DATE
en une valeur de type DATE
. Nous allons également pratiquer avec quelques exemples de code utilisant les fonctions STR_TO_DATE()
, CONVERT()
et CAST()
dans MySQL.
REMARQUE : Nous utilisons MySQL V8.0.27. Vous pouvez obtenir le plus récent à partir de ici (si disponible)
Convertir une chaîne en format de date dans MySQL
Nous allons apprendre les méthodes suivantes pour convertir une chaîne au format DATE
dans MySQL.
Fonction MySQL STR_TO_DATE()
Cette fonction convertit la str
(chaîne) en valeur DATE
. Le format de DATE
sera en fonction de votre format de chaîne. Par exemple, vous souhaitez convertir MM/DD/YYYY
du type chaîne vers le type DATE
, alors la DATE
sera également au format MM/DD/YYYY
.
La fonction STR_TO_DATE()
peut renvoyer la valeur DATE
, DATETIME
ou TIME
en fonction de l’entrée ainsi que du format de chaîne. Consultez les exemples ci-dessous et comparez-les avec la sortie.
SELECT STR_TO_DATE('2021-08-23', '%Y-%m-%d');
Production :
Et si on changeait de format ? Remplaçons le tiret par une virgule.
SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');
Production :
Voir la sortie donnée ci-dessus, elle a renvoyé NULL
. Changeons le format uniquement de YYYY-MM-DD
en DD-MM-YYYY
.
SELECT STR_TO_DATE('2021-08-23', '%d-%m-%Y');
Production :
Vous voyez, il a renvoyé NULL
à nouveau. Cela signifie que vous devez avoir le même format DATE
que celui que vous avez dans votre chaîne d’entrée. Et si nous avions aussi TIME
? Exécutons la commande suivante.
SELECT STR_TO_DATE('2021-08-23 10:12:23', '%Y-%m-%d %T');
Production :
La fonction STR_TO_DATE()
ignorera le texte et n’affichera que la DATE
. Voir l’exemple suivant.
SELECT STR_TO_DATE('2021-08-23 some other string', '%Y-%m-%d') as Date;
Production :
Nous pouvons également extraire l’année. Si vous extrayez l’année, cela mettra le jour et le mois à zéro. Voir le code et la sortie suivants.
SELECT STR_TO_DATE('2021-08-23', '%Y') as Year; #get year
Production :
Fonction MySQL CONVERT()
La fonction Convert
peut convertir la valeur donnée en un jeu de caractères ou un type de données spécifié. Vous pouvez voir les détails sur le type de données ici.
SELECT CONVERT("2021-08-19", DATE); #convert to DATE
SELECT CONVERT("2021-08-19", DATETIME); #convert to DATETIME
SELECT CONVERT("2021-08-19", TIME); #convert to TIME
Production :
Fonction CAST()
de MySQL
Cette fonction convertit l’entrée de n’importe quel type (il peut s’agir d’une chaîne, d’un entier ou de quelque chose d’autre) en n’importe quel type de données spécifié. Vous pouvez voir les valeurs des paramètres ici en détail.
SELECT CAST("2021-08-29" AS DATE) as date; #convert to date type
SELECT CAST("2021-08-29 11:12:45" AS DATETIME) as datetime; #convert to datetime type
SELECT CAST("11:12:45" AS TIME) as time; #convert to time type
Production :
conclusion
Nous avons conclu qu’il peut y avoir plusieurs façons de convertir une valeur de chaîne en DATE
, TIME
, et DATETIME
selon les exigences du projet. Nous avons découvert les fonctions STR_TO_DATE
, CONVERT
et CAST
à des fins de conversion.