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

Comment MONTHNAME() fonctionne dans MariaDB

Dans MariaDB, MONTHNAME() est une fonction de date et d'heure intégrée qui renvoie le nom du mois pour une date donnée.

Il accepte un argument, qui est la date à partir de laquelle vous souhaitez extraire le nom du mois.

Syntaxe

La syntaxe ressemble à ceci :

MONTHNAME(date) 

date est la date à partir de laquelle obtenir le nom du mois.

Exemple

Voici un exemple :

SELECT MONTHNAME('2041-11-14'); 

Résultat :

+-------------------------+| NOM MOIS('2041-11-14') |+-------------------------+| Novembre |+-------------------------+

Langue

La langue utilisée pour le nom du mois est contrôlée par la valeur de lc_time_names variable système.

Voici un exemple qui montre comment cela affecte le résultat :

SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14'); 

Résultat :

+-------------------------+| NOM MOIS('2041-11-14') |+-------------------------+| novembre |+-------------------------+

Et revenir à en_US , qui est la valeur par défaut :

SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14'); 

Résultat :

+-------------------------+| NOM MOIS('2041-11-14') |+-------------------------+| Novembre |+-------------------------+

Voici une liste des paramètres régionaux pris en charge par MariaDB, et voici comment renvoyer votre propre liste de paramètres régionaux disponibles.

Et voici un article expliquant comment vérifier la valeur de votre lc_time_names variable système.

Valeurs DateHeure

Cela fonctionne également avec les valeurs datetime :

SELECT MONTHNAME('2041-01-15 10:30:45'); 

Résultat :

+------------------------------------------------+| NOM DU MOIS('2041-01-15 10:30:45') |+--------------------------------- -+| Janvier |+------------------------------------------------+

Zéro mois

Avoir zéro mois dans la date renvoie null :

SELECT MONTHNAME('2030-00-00'); 

Résultat :

+-------------------------+| NOM MOIS('2030-00-00') |+------------------------------+| NULL |+-------------------------+

Dates numériques

Il est également possible de transmettre des dates sous forme de nombre, tant que cela a du sens en tant que date.

Exemple

SELECT MONTHNAME(20201208); 

Résultat :

+---------------------+| NOM DU MOIS(20201208) |+---------------------+| Décembre |+---------------------+

Les années à deux chiffres conviennent :

SELECT MONTHNAME(201208); 

Résultat :

+-------------------+| NOM DU MOIS(201208) |+-------------------+| Décembre |+-------------------+

Mais ça doit avoir un sens comme date. Voici ce qui se passe si j'augmente la partie jour à un jour non valide :

SELECT MONTHNAME(201299); 

Résultat :

+-------------------+| NOM DU MOIS(201299) |+------------------+| NULL |+-------------------+

Autres délimiteurs

Vous pouvez utiliser d'autres délimiteurs pour la date. MariaDB est assez indulgent en ce qui concerne les délimiteurs de dates. Voici quelques exemples valides :

SELECT 
    MONTHNAME('2027/08/19'),
    MONTHNAME('2027,08,19'),
    MONTHNAME('2027:08:19'),
    MONTHNAME('2027;08!19'); 

Résultat (en utilisant la sortie verticale) :

MONTHNAME('2027/08/19') :aoûtMONTHNAME('2027,08,19') :aoûtMONTHNAME('2027:08:19') :aoûtMONTHNAME('2027;08!19') :août 

Date actuelle

Nous pouvons passer NOW() comme argument de date pour utiliser la date actuelle :

SELECT 
    NOW(),
    MONTHNAME(NOW()); 

Résultat :

+---------------------+------------------+| MAINTENANT() | NOM DU MOIS(MAINTENANT()) |+---------------------+------------------+| 2021-05-14 10:11:16 | Mai |+---------------------+-------------+

Arguments invalides

Lorsqu'un argument invalide est passé, MONTHNAME() renvoie null :

SELECT MONTHNAME('Wrong!'); 

Résultat :

+---------------------+| NOM MOIS('Mauvais !') |+---------------------+| NULL |+---------------------+

Argument manquant

Appel de MONTHNAME() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT MONTHNAME(); 

Résultat :

ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'MONTHNAME'

Et un autre exemple :

SELECT MONTHNAME('2030-01-25', '2045-05-08'); 

Résultat :

ERREUR 1582 (42000) :Nombre de paramètres incorrect dans l'appel à la fonction native 'MONTHNAME'