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

Comment DAYNAME() fonctionne dans MariaDB

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) 

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') :jeudi 

Date 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() renvoie null :

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'