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)
Où 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'