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

3 façons d'obtenir le nom du mois à partir d'une date dans MariaDB

Voici trois façons de renvoyer le nom du mois à partir d'une date dans MariaDB.

Le MONTHNAME() Fonction

Le MONTHNAME() La fonction est conçue spécifiquement pour renvoyer le nom du mois à partir d'une date. Pour cela, passez la date à la fonction lors de son appel. Le nom complet du mois sera renvoyé.

Exemple :

SELECT MONTHNAME('2021-08-19');

Résultat :

+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August                  |
+-------------------------+

La langue utilisée pour le nom du mois est contrôlée par la valeur de lc_time_names variable système. Voir MONTHNAME() pour un exemple de la façon dont cela affecte la sortie.

Le DATE_FORMAT() Fonction

Le DATE_FORMAT() La fonction formate une date donnée dans un format spécifié. Vous spécifiez la date et le format lorsque vous appelez la fonction.

Vous pouvez renvoyer le nom complet du mois en passant %M comme chaîne de format.

Exemple :

SELECT DATE_FORMAT('2021-08-19', '%M');

Résultat :

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August                          |
+---------------------------------+

Comme avec MONTHNAME() , la langue utilisée pour le nom du mois est contrôlée par la valeur de lc_time_names variable système. Cependant, le DATE_FORMAT() La fonction accepte un troisième argument facultatif qui vous permet de spécifier les paramètres régionaux.

Voici un exemple de spécification de paramètres régionaux :

SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');

Résultat :

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost                                    |
+------------------------------------------+

Nom abrégé du mois

Passer %b au DATE_FORMAT() La fonction renvoie le nom court du mois.

Exemple :

SELECT DATE_FORMAT('2021-08-19', '%b');

Résultat :

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug                             |
+---------------------------------+

Cela pourrait être répliqué avec le MONTHNAME() fonction en utilisant LEFT() pour saisir les 3 premiers caractères du nom du mois.

Exemple :

SELECT LEFT(MONTHNAME('2021-08-19'), 3);

Résultat :

+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug                              |
+----------------------------------+

Le même concept pourrait être atteint en convertissant le résultat de MONTHNAME() à un type de données à trois caractères avec une fonction comme CAST() .

Cependant, bien que cette approche fonctionne en en_US , cela peut ne pas toujours fonctionner dans d'autres langues. Par exemple :

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
    LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
    MONTHNAME('2021-08-19') AS "Full";

Résultat :

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ส.ค.     | สิง        | สิงหาคม                |
+----------+-----------+-----------------------+