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

Comment MONTH() fonctionne dans MariaDB

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) 

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'):6 

Date 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() renvoie null :

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 1

Et 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