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)
Où 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') :6Date 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()
renvoienull
: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'