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

Comment DAYOFMONTH() fonctionne dans MariaDB

Dans MariaDB, DAYOFMONTH() est une fonction de date et d'heure intégrée qui renvoie le jour du mois à partir d'une date donnée.

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

Le résultat est dans la plage 1 à 31 . Cependant, si la date comporte une partie zéro jour (par exemple '0000-00-00' ou '2021-00-00' ), le résultat est 0 .

Syntaxe

La syntaxe ressemble à ceci :

DAYOFMONTH(date) 

date est la date à partir de laquelle extraire le jour.

Exemple

Voici un exemple :

SELECT DAYOFMONTH('2030-01-25'); 

Résultat :

+-----------------------------------+| JOURDUMOIS('2030-01-25') |+--------------------------+| 25 |+------------------------------+

Valeurs DateHeure

Cela fonctionne également avec les valeurs datetime :

SELECT DAYOFMONTH('2030-01-25 10:30:45'); 

Résultat :

+-----------------------------------+| JOURDUMOIS('2030-01-25 10:30:45') |+--------------------------------- --+| 25 |+-----------------------------------+

Zéro jour

Voici un exemple qui utilise un jour zéro dans la date :

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

Résultat :

+-----------------------------------+| JOURDUMOIS('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 DAYOFMONTH(20300125); 

Résultat :

+----------------------+| JOURDUMOIS(20300125) |+----------------------+| 25 |+----------------------+

Ou même le suivant (qui utilise une année à deux chiffres) :

SELECT DAYOFMONTH(300125); 

Résultat :

+--------------------+| JOURDUMOIS(300125) |+--------------------+| 25 |+--------------------+

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

SELECT DAYOFMONTH(20300135); 

Résultat :

+----------------------+| JOURDUMOIS(20300135) |+----------------------+| 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 
    DAYOFMONTH('2030/01/25'),
    DAYOFMONTH('2030,01,25'),
    DAYOFMONTH('2030:01:25'),
    DAYOFMONTH('2030;01!25'); 

Résultat (en utilisant la sortie verticale) :

DAYOFMONTH('2030/01/25') :25DAYOFMONTH('2030,01,25') :25DAYOFMONTH('2030:01:25') :25DAYOFMONTH('2030;01!25') :25 

Date actuelle

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

SELECT 
    NOW(),
    DAYOFMONTH(NOW()); 

Résultat :

+---------------------+-----------------------+| MAINTENANT() | JOURDUMOIS(MAINTENANT()) |+---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+--------------+

Arguments invalides

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

SELECT DAYOFMONTH('Homer'); 

Résultat :

+---------------------+| JOURDUMOIS('Homère') |+---------------------+| NULL |+---------------------+

Argument manquant

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

SELECT DAYOFMONTH(); 

Résultat :

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

Et un autre exemple :

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

Résultat :

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