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') :25Date 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()
renvoienull
: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'