Dans MySQL, vous pouvez utiliser le DATE_FORMAT()
fonction avec le %b
spécificateur de format pour renvoyer le nom court du mois. Par exemple, vous pouvez renvoyer Jan
ou Feb
au lieu de January
ou February
.
Exemple
SELECT DATE_FORMAT('2035-01-18', '%b');
Résultat :
Jan
Voici un autre exemple qui s'étend sur les différents mois de l'année :
SELECT
DATE_FORMAT('2035-01-18', '%b') AS "1",
DATE_FORMAT('2035-02-18', '%b') AS "2",
DATE_FORMAT('2035-03-18', '%b') AS "3",
DATE_FORMAT('2035-04-18', '%b') AS "4",
DATE_FORMAT('2035-05-18', '%b') AS "5",
DATE_FORMAT('2035-06-18', '%b') AS "6",
DATE_FORMAT('2035-07-18', '%b') AS "7",
DATE_FORMAT('2035-08-18', '%b') AS "8",
DATE_FORMAT('2035-09-18', '%b') AS "9",
DATE_FORMAT('2035-10-18', '%b') AS "10",
DATE_FORMAT('2035-11-18', '%b') AS "11",
DATE_FORMAT('2035-12-18', '%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 uniquement le renvoi du nom abrégé du mois.
Voir les spécificateurs de format de date MySQL pour une liste des spécificateurs de format qui peuvent être utilisés avec DATE_FORMAT()
.
Raccourcissez le nom du mois complet
Si vous avez besoin de raccourcir un nom de mois complet, vous pouvez toujours utiliser une fonction comme LEFT()
pour renvoyer uniquement les trois premiers caractères (ou le nombre dont vous avez besoin).
Exemple :
SELECT
DATE_FORMAT('2035-09-18', '%M') AS Full,
LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;
Résultat :
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+
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('2035-09-18', '%M') AS Full,
CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;
Résultat :
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+ 1 row in set, 1 warning (0.00 sec)
Dans ce cas, nous recevons un avertissement car nous tronquons une valeur plus longue :
show warnings;
Résultat :
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' | +---------+------+------------------------------------------------+
Raccourcir le nom du mois comme celui-ci peut convenir lorsque vous travaillez avec des langues telles que l'anglais, mais gardez à l'esprit qu'il peut ne pas renvoyer le même résultat que lors de l'utilisation de %b
spécificateur de format.
Pour illustrer ce que je veux dire, voici ce qui se passe lorsque je change de session pour utiliser la langue thaï :
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2023-10-25', '%M') AS Full,
LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
DATE_FORMAT('2023-10-25', '%b') AS Short;
Résultat :
+--------------------+-----------+----------+ | Full | Truncated | Short | +--------------------+-----------+----------+ | ตุลาคม | ตุล | ต.ค. | +--------------------+-----------+----------+
Tronquer le nom du mois complet renvoie un résultat différent de l'utilisation de %b
spécificateur de format pour renvoyer le nom court du mois.