Dans MariaDB, MONTH()
est une fonction de date et d'heure intégrée qui renvoie le mois à partir d'une expression de date donnée.
Il accepte un argument, qui est la date à partir de laquelle vous voulez extraire le mois.
Il renvoie le mois sous la forme d'un nombre dans la plage 1
à 12
pour janvier à décembre. Si la date a une partie mois nulle (par exemple 0000-00-00
ou 2025-00-00
), le résultat est 0
.
Syntaxe
La syntaxe ressemble à ceci :
MONTH(date)
Où date
est l'expression de date à partir de laquelle obtenir le mois.
Exemple
Voici un exemple :
SELECT MONTH('2030-08-01');
Résultat :
+---------------------+| MOIS('2030-08-01') |+---------------------+| 8 |+---------------------+
Valeurs DateHeure
Cela fonctionne également avec les valeurs datetime :
SELECT MONTH('2030-08-01 10:30:45');
Résultat :
+------------------------------+| MOIS('2030-08-01 10:30:45') |+------------------------------+| 8 |+------------------------------+
Zéro mois
Zéro mois donne 0
.
Exemple :
SELECT MONTH('2030-00-00');
Résultat :
+---------------------+| MOIS('2030-00-00') |+---------------------+| 0 |+---------------------+
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 MONTH(20301125);
Résultat :
+-----------------+| MOIS(20301125) |+-----------------+| 11 |+-----------------+
Ou même le suivant (qui utilise une année à deux chiffres) :
SELECT MONTH(301125);
Résultat :
+---------------+| MOIS(301125) |+---------------+| 11 |+---------------+
Mais ça doit avoir un sens comme date. Voici ce qui se passe si j'augmente la partie jour à un jour non valide :
SELECT MONTH(20301135);
Résultat :
+-----------------+| MOIS(20301135) |+-----------------+| 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
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25');
Résultat (en utilisant la sortie verticale) :
MOIS('2030/06/25'):6MOIS('2030,06,25'):6MOIS('2030:06:25'):6MOIS('2030;06!25'):6Date actuelle
Nous pouvons passer
NOW()
comme argument datetime pour utiliser la date actuelle :SELECT NOW(), MONTH(NOW());
Résultat :
+---------------------+--------------+| MAINTENANT() | MOIS(MAINTENANT()) |+---------------------+--------------+| 2021-05-16 15:00:06 | 5 |+---------------------+----------------------+Arguments invalides
Lorsqu'un argument invalide est passé,
MONTH()
renvoienull
:SELECT MONTH('2030-65-78');
Résultat :
+---------------------+| MOIS('2030-65-78') |+---------------------+| NULL |+---------------------+Argument manquant
Appel de
MONTH()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :SELECT MONTH();
Résultat :
ERROR 1064 (42000) :vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de ')' à la ligne 1Et un autre exemple :
SELECT MONTH('2030-12-10', '2031-12-10');
Résultat :
ERROR 1064 (42000) :vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de ''2031-12-10')' à la ligne 1