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

3 façons d'obtenir le nom du jour à partir d'une date dans MariaDB

Vous trouverez ci-dessous trois approches que vous pouvez utiliser pour obtenir le nom du jour à partir d'une date dans MariaDB.

Deux de ces approches renvoient le nom complet du jour et une renvoie le nom abrégé du jour.

Le DAYNAME() Fonction

Le DAYNAME() est conçue spécifiquement pour renvoyer le nom du jour à partir d'une date. Passez simplement la date lors de l'appel de la fonction, et elle renverra le nom complet du jour.

Exemple :

SELECT DAYNAME('2021-08-19');

Résultat :

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

La langue utilisée pour le nom du jour est contrôlée par la valeur de lc_time_names variable système. Voir DAYNAME() pour un exemple de la façon dont cela affecte la sortie.

Le DATE_FORMAT() Fonction

Le DATE_FORMAT() La fonction formate une date donnée dans un format spécifié. Vous spécifiez la date et le format lorsque vous appelez la fonction.

Vous pouvez renvoyer le nom complet du jour de la semaine en passant %W comme chaîne de format.

Exemple :

SELECT DATE_FORMAT('2021-08-19', '%W');

Résultat :

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Comme avec DAYNAME() , la langue utilisée pour le nom du jour est contrôlée par la valeur de lc_time_names variable système. Cependant, le DATE_FORMAT() La fonction accepte un troisième argument facultatif qui vous permet de spécifier les paramètres régionaux.

Voici un exemple de spécification de paramètres régionaux :

SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');

Résultat :

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Nom abrégé du jour

Passer %a au DATE_FORMAT() renvoie le nom abrégé du jour de la semaine.

Exemple :

SELECT DATE_FORMAT('2021-08-19', '%a');

Résultat :

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

Cela pourrait être reproduit avec le DAYNAME() fonction en utilisant LEFT() pour saisir les 3 premiers caractères du nom du jour de la semaine.

Exemple :

SELECT LEFT(DAYNAME('2021-08-19'), 3);

Résultat :

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

Le même effet pourrait également être obtenu en utilisant une fonction comme CAST() pour convertir le résultat en un type de données à trois caractères.

Cependant, bien que cette approche fonctionne en en_US , cela peut ne pas toujours fonctionner dans d'autres langues. Par exemple :

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Résultat :

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+