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

Comment DAYOFWEEK() fonctionne dans MariaDB

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

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

Il renvoie le jour sous forme de nombre. La numérotation des index respecte la norme ODBC (1 =dimanche, 2 =lundi, etc.). Ceci est en contraste avec WEEKDAY() , où 0 =Lundi, 1 =mardi, etc.

Syntaxe

La syntaxe ressemble à ceci :

DAYOFWEEK(date) 

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

Exemple

Voici un exemple :

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

Résultat :

+-------------------------+| JOURSEMAINE('2030-01-25') |+-------------------------+| 6 |+-------------------------+

Par rapport au nom du jour

En voici un autre, à côté de DAYNAME() pour renvoyer le nom du jour :

SELECT 
    DAYOFWEEK('2030-01-20'),
    DAYNAME('2030-01-20'); 

Résultat :

+--------------------+-------------------- ---+| JOURSEMAINE('2030-01-20') | NOMJOUR('2030-01-20') |+-------------------------+------------ -----------+| 1 | dimanche |+--------------------+--------------------- --+

Comme mentionné, la numérotation de l'index commence à 1 pour le dimanche.

Voici samedi :

SELECT 
    DAYOFWEEK('2030-01-19'),
    DAYNAME('2030-01-19'); 

Résultat :

+--------------------+-------------------- ---+| JOURSEMAINE('2030-01-19') | DAYNAME('2030-01-19') |+-------------------------+------------ -----------+| 7 | Samedi |+--------------------+--------------------- --+

Valeurs DateHeure

Cela fonctionne également avec les valeurs datetime :

SELECT DAYOFWEEK('2030-01-24 10:30:45'); 

Résultat :

+------------------------------------------------+| JOURSEMAINE('2030-01-24 10:30:45') |+--------------------------------- -+| 5 |+---------------------------------+

Zéro jour

Zéro jour donne null .

Exemple :

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

Résultat :

+-------------------------+| JOURSEMAINE('2030-00-00') |+-------------------------+| NULL |+-------------------------+

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 DAYOFWEEK(20300125); 

Résultat :

+---------------------+| JOURSEMAINE(20300125) |+---------------------+| 6 |+---------------------+

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

SELECT DAYOFWEEK(300125); 

Résultat :

+-------------------+| JOUR DE LA SEMAINE(300125) |+------------------+| 6 |+-------------------+

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

SELECT DAYOFWEEK(20300135); 

Résultat :

+---------------------+| JOUR DE LA SEMAINE(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 
    DAYOFWEEK('2030/01/25'),
    DAYOFWEEK('2030,01,25'),
    DAYOFWEEK('2030:01:25'),
    DAYOFWEEK('2030;01!25'); 

Résultat (en utilisant la sortie verticale) :

DAYOFWEEK('2030/01/25') :6DAYOFWEEK('2030,01,25') :6DAYOFWEEK('2030:01:25') :6DAYOFWEEK('2030;01!25') :6 

Date actuelle

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

SELECT 
    NOW(),
    DAYOFWEEK(NOW()); 

Résultat :

+---------------------+------------------+| MAINTENANT() | JOURSEMAINE(MAINTENANT()) |+---------------------+------------------+| 2021-05-15 09:17:44 | 7 |+----------------------+------------------+

Arguments invalides

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

SELECT DAYOFWEEK('Homer'); 

Résultat :

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

Argument manquant

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

SELECT DAYOFWEEK(); 

Résultat :

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

Et un autre exemple :

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

Résultat :

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