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

MariaDB DAY() expliqué

Dans MariaDB, DAY() est un synonyme de DAYOFMONTH() . Il renvoie le jour du mois à partir d'une date donnée.

Il accepte un argument, qui est la date à partir de laquelle vous souhaitez renvoyer 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 :

DAY(date) 

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

Exemple

Voici un exemple :

SELECT DAY('2045-05-18'); 

Résultat :

+-------------------+| JOUR('2045-05-18') |+-------------------------------+| 18 |+-------------------+

Valeurs DateHeure

Cela fonctionne également avec les valeurs datetime :

SELECT DAY('2045-05-18 01:10:15'); 

Résultat :

+----------------------------+| JOUR('2045-05-18 01:10:15') |+----------------------------+| 18 |+----------------------------+

Zéro jour

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

SELECT DAY('0000-00-00'); 

Résultat :

+-------------------+| JOUR('0000-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 DAY(20220308); 

Résultat :

+---------------+| JOUR(20220308) |+---------------+| 8 |+---------------+

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

SELECT DAY(220308); 

Résultat :

+-------------+| JOUR(220308) |+-------------+| 8 |+-------------+

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

SELECT DAY(220358); 

Résultat :

+-------------+| JOUR(220358) |+-------------+| 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 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30'); 

Résultat (en utilisant la sortie verticale) :

DAY('2028/12/30') :30DAY('2028,12,30') :30DAY('2028:12:30') :30DAY('2028;12!30') :30 

Date actuelle

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

SELECT 
    NOW(),
    DAY(NOW()); 

Résultat :

+---------------------+------------+| MAINTENANT() | JOUR(MAINTENANT()) |+---------------------+--------------------+| 2021-05-13 09:41:03 | 13 |+---------------------+------------+

Arguments invalides

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

SELECT DAY('Oops!'); 

Résultat :

+--------------+| JOUR('Oups !') |+--------------+| NULL |+--------------+

Argument manquant

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

SELECT DAY(); 

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 DAY('2030-01-25', '2045-05-08'); 

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 ''2045-05-08')' à la ligne 1