Dans MariaDB, DAYNAME()
est une fonction de date et d'heure intégrée qui renvoie le nom du jour de la semaine pour une date donnée.
Il accepte un argument, qui est la date à partir de laquelle vous souhaitez extraire le nom du jour.
Syntaxe
La syntaxe ressemble à ceci :
DAYNAME(date)
Où date
est la date à partir de laquelle obtenir le nom du jour.
Exemple
Voici un exemple :
SELECT DAYNAME('2045-10-17');
Résultat :
+-----------------------+| NOMJOUR('2045-10-17') |+-----------------------+| Mardi |+-----------------------+
Langue
La langue utilisée pour le nom du jour est contrôlée par la valeur de lc_time_names
variable système.
Voici un exemple qui montre comment cela affecte le résultat :
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');
Résultat :
+-----------------------+| NOMJOUR('2045-10-17') |+-----------------------+| Dienstag |+-----------------------+
Et revenir à en_US
, qui est la valeur par défaut :
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');
Résultat :
+-----------------------+| NOMJOUR('2045-10-17') |+-----------------------+| Mardi |+-----------------------+
Voici une liste des paramètres régionaux pris en charge par MariaDB, et voici comment renvoyer votre propre liste de paramètres régionaux disponibles.
Tant qu'on y est, voici un post expliquant comment vérifier la valeur de votre lc_time_names
variable système.
Valeurs DateHeure
Cela fonctionne également avec les valeurs datetime :
SELECT DAYNAME('2030-01-25 10:30:45');
Résultat :
+---------------------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | Vendredi |+-------------------------------+
Zéro jour
Avoir un jour zéro dans la date renvoie null
:
SELECT DAYNAME('2030-00-00');
Résultat :
+-----------------------+| NOMJOUR('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 DAYNAME(20201108);
Résultat :
+-------------------+| NOMJOUR(20201108) |+--------------------------------+| Dimanche |+-------------------+
Les années à deux chiffres conviennent :
SELECT DAYNAME(201108);
Résultat :
+-----------------+| NOMJOUR(201108) |+-----------------+| Dimanche |+-----------------+
Mais ça doit avoir un sens comme date. Voici ce qui se passe si j'augmente la partie mois à un mois invalide :
SELECT DAYNAME(209908);
Résultat :
+-----------------+| NOMJOUR(209908) |+-----------------+| 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
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19');
Résultat (en utilisant la sortie verticale) :
DAYNAME('2027/08/19') :jeudiDAYNAME('2027,08,19') :jeudiDAYNAME('2027:08:19') :jeudiDAYNAME('2027;08!19') :jeudiDate actuelle
Nous pouvons passer
NOW()
comme argument de date pour utiliser la date actuelle :SELECT NOW(), DAYNAME(NOW());
Résultat :
+---------------------+----------------+| MAINTENANT() | NOMJOUR(MAINTENANT()) |+---------------------+----------------+| 2021-05-13 13:29:10 | Jeudi |+---------------------+----------------+Arguments invalides
Lorsqu'un argument invalide est passé,
DAYNAME()
renvoienull
:SELECT DAYNAME('Dang!');
Résultat :
+------------------+| DAYNAME('Dang !') |+------------------+| NULL |+------------------+Argument manquant
Appel de
DAYNAME()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :SELECT DAYNAME();
Résultat :
ERREUR 1582 (42000) :nombre de paramètres incorrect dans l'appel à la fonction native 'DAYNAME'Et un autre exemple :
SELECT DAYNAME('2030-01-25', '2045-05-08');
Résultat :
ERREUR 1582 (42000) :nombre de paramètres incorrect dans l'appel à la fonction native 'DAYNAME'