Dans MariaDB, vous pouvez utiliser le DATE_FORMAT()
fonction pour renvoyer diverses parties de date à partir d'une date. L'une des choses que vous pouvez renvoyer est le nom abrégé du mois. Par exemple Nov
ou Dec
(au lieu de November
ou December
).
Le spécificateur de format "Short Month Name" (%b
)
La clé pour renvoyer le nom court du mois lors de l'utilisation de DATE_FORMAT()
fonction consiste à utiliser le spécificateur de format applicable.
Dans MariaDB, le spécificateur de format pour le nom court du mois est :%b
Exemple
Voici un exemple pour illustrer :
SELECT DATE_FORMAT('2023-12-25', '%b');
Résultat :
+---------------------------------+ | DATE_FORMAT('2023-12-25', '%b') | +---------------------------------+ | Dec | +---------------------------------+
Voici un autre exemple qui s'étend sur les différents mois de l'année :
SELECT
DATE_FORMAT('2023-01-25', '%b') AS "1",
DATE_FORMAT('2023-02-25', '%b') AS "2",
DATE_FORMAT('2023-03-25', '%b') AS "3",
DATE_FORMAT('2023-04-25', '%b') AS "4",
DATE_FORMAT('2023-05-25', '%b') AS "5",
DATE_FORMAT('2023-06-25', '%b') AS "6",
DATE_FORMAT('2023-07-25', '%b') AS "7",
DATE_FORMAT('2023-08-25', '%b') AS "8",
DATE_FORMAT('2023-09-25', '%b') AS "9",
DATE_FORMAT('2023-10-25', '%b') AS "10",
DATE_FORMAT('2023-11-25', '%b') AS "11",
DATE_FORMAT('2023-12-25', '%b') AS "12";
Résultat (en utilisant la sortie verticale) :
1: Jan 2: Feb 3: Mar 4: Apr 5: May 6: Jun 7: Jul 8: Aug 9: Sep 10: Oct 11: Nov 12: Dec
Vous pouvez également renvoyer d'autres unités de date et d'heure, mais cet article concerne spécifiquement le renvoi du nom abrégé du mois. Voir MariaDB Format Strings pour une liste des spécificateurs de format qui peuvent être utilisés avec DATE_FORMAT()
.
Autres approches
Il existe d'autres façons d'obtenir le nom court du mois à partir d'une date qui implique de couper la première partie du mois.
Cependant, cela peut être plus sujet aux erreurs que la méthode ci-dessus (en plus, c'est plus compliqué). Vous pourriez obtenir des résultats inattendus en utilisant cette méthode, en particulier lorsque vous travaillez avec différentes langues.
Voici quelques exemples pour illustrer ce que je veux dire.
Au lieu d'utiliser le %b
spécificateur de format comme nous l'avons fait dans l'exemple précédent, nous pourrions utiliser le %M
spécificateur de format pour renvoyer le nom complet du mois, puis renvoyer raccourcir ce résultat avec une fonction telle que LEFT()
.
Exemple :
SELECT
DATE_FORMAT('2023-10-25', '%M') AS Full,
LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;
Résultat :
+---------+-------+ | Full | Short | +---------+-------+ | October | Oct | +---------+-------+
Nous pourrions également utiliser une fonction comme CAST()
pour convertir en un type de données avec seulement trois caractères, comme ceci :
SELECT
DATE_FORMAT('2023-10-25', '%M') AS Full,
CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;
Résultat :
+---------+-------+ | Full | Short | +---------+-------+ | October | Oct | +---------+-------+
Cela fonctionne bien lorsque vous travaillez avec la langue anglaise (et peut-être d'autres langues). Mais voyons ce qui se passe lorsque nous passons à une autre langue, disons le thaï :
SELECT
DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;
Résultat :
+--------------------+-----------+ | Full | Short | +--------------------+-----------+ | ตุลาคม | ตุล | +--------------------+-----------+
Cependant, voici ce qui se passe lorsque nous utilisons le %b
spécificateur de format pour renvoyer le nom court du mois :
SELECT
DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;
Résultat :
+--------------------+----------+ | Full | Short | +--------------------+----------+ | ตุลาคม | ต.ค. | +--------------------+----------+
Il renvoie un résultat différent.
Je vous recommande donc d'utiliser le %b
spécificateur de format chaque fois que possible.