Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

MySQL STR_TO_DATE() Function

La fonction `STR_TO_DATE()` de MySQL est utilisée pour convertir une chaîne de caractères en une date basée sur un format spécifié. Il est particulièrement utile pour analyser les chaînes de dates en objets de date avec lesquels MySQL peut travailler.

Utilisation

La fonction `STR_TO_DATE()` est généralement utilisée lorsque vous devez transformer une chaîne de caractères en un format de date pour effectuer des opérations liées à la date. Cette fonction a besoin de la chaîne à convertir et du format dans lequel la date est spécifiée.

STR_TO_DATE(string, format);

Dans cette syntaxe, `string` est la chaîne de date que vous voulez convertir, et `format` est le format qui correspond à la structure de la chaîne.

Spécification des formats communs

Voici quelques spécificateurs de format courants que vous pouvez utiliser avec `STR_TO_DATE()` :

  • %d: Jour du mois (01 à 31)
  • %m: Mois (01 à 12)
  • %Y: Année (quatre chiffres)
  • %H: Heure (00 à 23)
  • %i: Minutes (00 à 59)
  • %s: Secondes (00 à 59)
  • %W: Nom du jour de la semaine (par exemple, dimanche)
  • %b: Nom du mois abrégé (par exemple, Jan)

Exemples

1. Conversion de base d'une chaîne de caractères en date

SELECT STR_TO_DATE('10-12-2023', '%d-%m-%Y');

Cet exemple convertit la chaîne "10-12-2023" en une date au format "%d-%m-%Y", ce qui signifie "10 décembre 2023".

2. Conversion avec le temps

SELECT STR_TO_DATE('2023/12/10 14:30:00', '%Y/%m/%d %H:%i:%s');

Ici, la fonction convertit '2023/12/10 14:30:00' en un objet date et heure, en interprétant le format comme 'Année/Mois/Jour Heure:Minute:Seconde'.

3. Analyse de différents formats de date

SELECT STR_TO_DATE('Saturday, Dec 10 2023', '%W, %b %d %Y');

Cet exemple montre comment convertir une chaîne de caractères avec un format de date différent "Saturday, Dec 10 2023" en utilisant "%W, %b %d %Y" pour interpréter les noms de jours et les noms de mois abrégés.

4. Exemple de format non conforme

SELECT STR_TO_DATE('2023-10-12', '%d-%m-%Y');

Cet exemple renvoie `NULL` car le format ne correspond pas à la chaîne d'entrée, ce qui souligne l'importance de faire correspondre exactement la chaîne de format à la structure de la chaîne d'entrée.

Conseils et bonnes pratiques

  • Veillez à l'exactitude du format. La chaîne de format doit correspondre exactement à la structure de la chaîne de date pour que la conversion soit réussie.
  • Gérer les NULL avec élégance. Si le format ne correspond pas, la fonction renvoie `NULL` ; utilisez `COALESCE()` pour gérer les nullités potentielles.
  • Exploitez les fonctions de date de MySQL. Après la conversion, utilisez les fonctions de date de MySQL pour manipuler et interroger efficacement les données de date.
  • Testez à l'aide d'un échantillon de données. Validez la fonction à l'aide d'un échantillon de données pour vous assurer que la chaîne de format correspond bien à la structure de la chaîne d'entrée.
  • Tenez compte des paramètres locaux. Notez que les spécificateurs de format de date peuvent varier en fonction de la locale, ce qui peut affecter l'analyse.

Pièges et messages d'erreur courants

  • Mauvaise correspondance de format : Une erreur fréquente est la non-concordance entre la chaîne de date et la chaîne de format, ce qui entraîne une valeur `NULL`.
  • Différences locales : Assurez-vous que les spécificateurs de format correspondent aux paramètres linguistiques si la chaîne de date utilise des noms de mois ou de jours localisés.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement