MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment obtenir le nom court du mois à partir d'une date dans MariaDB

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.