Comment changer facilement le format de date en utilisant la fonction DATE_FORMAT() en SQL

Lorsque vous traitez des données de date en SQL, il devient souvent nécessaire d’afficher les données dans un format spécifique. En utilisant la fonction DATE_FORMAT() de MySQL, vous pouvez facilement convertir les données de date en différents formats. Cet article fournira une explication détaillée sur la façon d’utiliser la fonction DATE_FORMAT(), de l’utilisation de base à des exemples avancés.

Sommaire

Utilisation de base de la fonction DATE_FORMAT()

La fonction DATE_FORMAT() est utilisée pour convertir les données de date en un format spécifié. La syntaxe de base est la suivante :

DATE_FORMAT(date, format)
  • date : Les données de date que vous souhaitez reformater
  • format : Le format souhaité

Par exemple, pour convertir la date 2024-05-23 du format YYYY-MM-DD au format MM/DD/YYYY, la requête SQL serait la suivante :

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

Le résultat de cette requête sera 05/23/2024. Ensuite, examinons de plus près les spécificateurs de format qui peuvent être utilisés avec la fonction DATE_FORMAT().

Liste des spécificateurs de format

La fonction DATE_FORMAT() peut afficher les dates en utilisant divers spécificateurs de format. Voici les principaux spécificateurs de format :

Spécificateurs de format liés à la date

  • %Y : Année à quatre chiffres (ex : 2024)
  • %y : Année à deux chiffres (ex : 24)
  • %m : Mois à deux chiffres (01-12)
  • %c : Mois (1-12)
  • %d : Jour à deux chiffres (01-31)
  • %e : Jour (1-31)

Spécificateurs de format liés à l’heure

  • %H : Heure à deux chiffres au format 24 heures (00-23)
  • %k : Heure au format 24 heures (0-23)
  • %h : Heure à deux chiffres au format 12 heures (01-12)
  • %I : Heure au format 12 heures (01-12)
  • %l : Heure au format 12 heures (1-12)
  • %i : Minutes à deux chiffres (00-59)
  • %s : Secondes à deux chiffres (00-59)
  • %p : AM ou PM

Autres spécificateurs de format

  • %W : Nom du jour de la semaine (ex : Dimanche)
  • %a : Nom abrégé du jour de la semaine (ex : Dim)
  • %M : Nom du mois (ex : Janvier)
  • %b : Nom abrégé du mois (ex : Jan)
  • %j : Jour de l’année (001-366)

En combinant ces spécificateurs, vous pouvez afficher les dates dans divers formats. Ensuite, examinons quelques exemples spécifiques d’utilisation de ces spécificateurs.

Exemples pratiques

Voici quelques exemples de conversion de données de date en différents formats en utilisant la fonction DATE_FORMAT().

Exemple 1 : Changer le format de date standard

Dans l’exemple suivant, la date 2024-05-23 est convertie au format MM/DD/YYYY.

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

Résultat : 05/23/2024

Exemple 2 : Afficher uniquement le mois et l’année

Cet exemple extrait et affiche le mois et l’année des données de date.

SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;

Résultat : May 2024

Exemple 3 : Afficher la date et le jour de la semaine

Cet exemple convertit la date en un format incluant la date et le nom du jour de la semaine.

SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;

Résultat : Thursday, May 23, 2024

Exemple 4 : Formater les données temporelles

Cet exemple convertit les données temporelles au format HH:MM AM/PM.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;

Résultat : 02:30 PM

Exemple 5 : Affichage des timestamps complets

Cet exemple change le format d’un timestamp complet incluant à la fois la date et l’heure.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_timestamp;

Résultat : 2024-05-23 14:30:00

Utilisez ces exemples comme référence pour convertir les données de date au format requis. Ensuite, examinons des exemples avancés d’utilisation de la fonction DATE_FORMAT().

Exemples avancés

Exploiter la fonction DATE_FORMAT() peut répondre à des besoins plus complexes. Voici quelques exemples impliquant plusieurs colonnes et des changements de format conditionnels.

Exemple 1 : Formater les dates en utilisant plusieurs colonnes

Cet exemple montre comment afficher plusieurs colonnes de date dans différents formats.

SELECT 
    DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_order_date,
    DATE_FORMAT(delivery_date, '%M %d, %Y') AS formatted_delivery_date
FROM orders;

Cette requête affiche order_date au format YYYY-MM-DD et delivery_date au format Month DD, YYYY.

Exemple 2 : Changement de format conditionnel

Cet exemple montre comment changer le format en fonction d’une condition. Ici, le format de date change en fonction de la valeur de la colonne status.

SELECT 
    order_id,
    status,
    CASE 
        WHEN status = 'shipped' THEN DATE_FORMAT(ship_date, '%M %d, %Y')
        ELSE DATE_FORMAT(order_date, '%Y-%m-%d')
    END AS formatted_date
FROM orders;

Cette requête affiche ship_date au format Month DD, YYYY si le status est shipped ; sinon, elle affiche order_date au format YYYY-MM-DD.

Exemple 3 : Formater des dates générées dynamiquement

Cet exemple montre comment générer et formater dynamiquement la date actuelle.

SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;

Cette requête affiche la date et l’heure actuelles au format Weekday, Month Day, Year Hour:Minute AM/PM.

Exemple 4 : Format de date spécifique à la locale

Cet exemple montre comment afficher les dates selon des formats spécifiques à la locale. Par exemple, afficher les dates au format de la locale japonaise.

SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;

Cette requête affiche order_date au format de la locale japonaise YYYY年MM月DD日.

Utilisez ces exemples avancés comme guide pour exploiter de manière flexible la fonction DATE_FORMAT(). Ensuite, nous résumerons les points clés de l’utilisation de la fonction DATE_FORMAT() et fournirons des conseils pour une application pratique.

Résumé

La fonction DATE_FORMAT() est un outil puissant dans MySQL pour changer de manière flexible le format des données de date. De l’utilisation de base aux spécificateurs de format détaillés, en passant par des exemples pratiques et des cas d’utilisation avancés, vous avez appris comment manipuler librement les données de date. Voici les points clés :

Points clés de la fonction DATE_FORMAT()

  • Syntaxe de base : Utilisez DATE_FORMAT(date, format) pour convertir une date en un format spécifié.
  • Spécificateurs de format : Combinez divers spécificateurs pour l’année, le mois, le jour, l’heure, le jour de la semaine, etc., pour des options d’affichage polyvalentes.
  • Exemples pratiques : Changements de format de date standard et affichages temporels spécifiques.
  • Exemples avancés : Changements de format pour plusieurs colonnes, changements de format conditionnels, dates générées dynamiquement et affichages spécifiques à la locale.

En maîtrisant la fonction DATE_FORMAT(), vous pouvez présenter les données de date récupérées de la base de données dans un format lisible, améliorant ainsi la qualité des applications et des rapports. Assurez-vous de l’utiliser dans vos opérations et analyses de données quotidiennes.

Sommaire