Comment utiliser DATE_FORMAT dans MySQL : Guide complet du formatage des dates et heures

1. Avant d’apprendre le formatage des dates MySQL : Les bases

La gestion des données de date dans une base de données joue un rôle critique dans chaque système. Dans MySQL, un stockage précis et un formatage approprié sont essentiels. Ici, nous introduirons les bases de la façon dont les dates sont stockées et affichées, et expliquerons la fonction DATE_FORMAT, qui est utile pour formater les sorties de dates.

1.1 Types de dates MySQL et leurs caractéristiques

MySQL fournit plusieurs types de données pour gérer les dates et les heures. Comprendre leurs cas d’utilisation vous aide à choisir le bon type et à optimiser les performances de la base de données.

  • Type DATE Stocke les dates au format YYYY-MM-DD . Convient pour les données de date simples uniquement (par ex., anniversaires ou dates d’événements). Exemple : 2024-10-19
  • Type DATETIME Stocke à la fois la date et l’heure au format YYYY-MM-DD HH:MM:SS . Utile pour les journaux ou les enregistrements où l’heure est requise. Exemple : 2024-10-19 15:30:45
  • Type TIMESTAMP Stocke les données sous forme d’horodatage UNIX (le nombre de secondes depuis le 1er janvier 1970) et est souvent utilisé dans les systèmes qui couvrent différentes zones horaires. Vous pouvez récupérer l’horodatage actuel avec CURRENT_TIMESTAMP .

Choisir le bon type de date en fonction des exigences de votre application est crucial pour la précision et l’efficacité des requêtes.

1.2 Différence entre le stockage et l’affichage

Lorsque MySQL stocke les dates, il utilise un format standard. Cependant, les utilisateurs ont souvent besoin que les dates soient affichées de manière plus lisible ou localisée. C’est là que la fonction DATE_FORMAT entre en jeu – elle vous permet de sortir les données stockées dans un format personnalisé.

Dans la section suivante, nous examinerons comment fonctionne DATE_FORMAT et des moyens pratiques de l’utiliser.

2. Utilisation de base de la fonction DATE_FORMAT

La fonction DATE_FORMAT est utilisée pour formater les dates stockées dans le format de sortie souhaité. En utilisant des spécificateurs de format flexibles, vous pouvez afficher les dates dans une variété de styles.

2.1 Syntaxe de DATE_FORMAT

DATE_FORMAT(date, format)
  • date : La valeur de date que vous souhaitez formater (DATE, DATETIME, TIMESTAMP, etc.).
  • format : Une chaîne qui spécifie le format de sortie, en utilisant des spécificateurs de format avec le symbole %.

Par exemple, cette requête convertit une date au format YYYY/MM/DD :

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

Résultat :

2024/10/19

2.2 Spécificateurs de format courants

La fonction DATE_FORMAT prend en charge de nombreux spécificateurs de format pour personnaliser les sorties de dates et d’heures. Voici quelques-uns des plus courants :

  • %Y : Année à quatre chiffres (par ex., 2024)
  • %m : Mois à deux chiffres (01–12)
  • %d : Jour à deux chiffres (01–31)
  • %W : Nom du jour de la semaine (par ex., Saturday)
  • %H : Heure au format 24 heures (00–23)
  • %i : Minutes (00–59)
  • %s : Secondes (00–59)

Par exemple, la requête suivante affiche le jour de la semaine avec l’année, le mois et le jour :

SELECT DATE_FORMAT('2024-10-19', '%W, %Y-%m-%d');

Résultat :

Saturday, 2024-10-19

2.3 Sortie au format japonais

Vous pouvez également utiliser DATE_FORMAT pour des sorties localisées. Par exemple, cette requête retourne la date au format japonais YYYY年MM月DD日 :

SELECT DATE_FORMAT('2024-10-19', '%Y年%m月%d日');

Résultat :

2024年10月19日

Ce format est couramment utilisé dans les rapports japonais, les factures et les documents officiels.

3. Techniques avancées de DATE_FORMAT

DATE_FORMAT devient encore plus puissant lorsqu’il est combiné avec d’autres fonctions MySQL. Examinons quelques techniques utiles pour gérer les opérations sur les dates.

3.1 Combinaison avec d’autres fonctions de date

Vous pouvez combiner DATE_FORMAT avec des fonctions comme DATE_ADD et DATE_SUB pour des calculs de dates dynamiques.

Exemple : Ajouter un mois à une date et la formater
SELECT DATE_FORMAT(DATE_ADD('2024-10-19', INTERVAL 1 MONTH), '%Y-%m-%d');

Résultat :

2024-11-19

Cela est utile pour générer des rapports dynamiques et traiter les mises à jour basées sur les dates.

3.2 Utilisation avec STR_TO_DATE

La fonction STR_TO_DATE convertit une chaîne en un type de date. Combinée avec DATE_FORMAT, vous pouvez analyser des chaînes en données de date valides et ensuite les formater selon les besoins.

Exemple : Convertir une chaîne en date et appliquer un formatage
SELECT DATE_FORMAT(STR_TO_DATE('2024年10月19日', '%Y年%c月%e日'), '%Y/%m/%d');

Résultat :

2024/10/19

Cela vous permet de gérer des dates basées sur des chaînes complexes et de les formater correctement.

4. Formats de dates courants dans le monde réel

Voici quelques formats de dates fréquemment utilisés dans les applications commerciales et système.

4.1 Date avec des barres obliques

SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');

Résultat :

2024/10/19

Ce format est largement utilisé dans les formulaires web et les interfaces utilisateur.

4.2 Format ISO 8601

SELECT DATE_FORMAT('2024-10-19', '%Y-%m-%d');

Résultat :

2024-10-19

ISO 8601 est la norme internationale et idéale pour l’échange de données entre systèmes.

4.3 Affichage du jour de la semaine et du nom du mois

SELECT DATE_FORMAT('2024-10-19', '%M %W');

Résultat :

October Saturday

Ceci est utile pour les calendriers d’événements et les vues de calendrier.

5. Conclusion

La fonction DATE_FORMAT est un outil puissant pour le formatage flexible des dates dans MySQL. Du formatage simple aux cas d’utilisation avancés combinés avec d’autres fonctions, elle est hautement polyvalente.

En utilisant des fonctions comme STR_TO_DATE et DATE_ADD ensemble, vous pouvez obtenir un traitement de données encore plus dynamique. Appliquez les techniques couvertes dans cet article pour gérer efficacement les données de date et optimiser votre système ou application.

Continuez à exploiter les fonctionnalités de MySQL pour améliorer les opérations de base de données et construire des systèmes plus raffinés.