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

Comment obtenir le nom court du jour à partir d'une date dans MariaDB

Dans MariaDB, vous pouvez utiliser le DATE_FORMAT() fonction pour renvoyer diverses parties de date à partir d'une date. L'une des choses que vous pouvez renvoyer est le nom abrégé du jour. Par exemple Tue ou Wed (au lieu de Tuesday ou Wednesday ).

Le spécificateur de format "Short Day Name" (%a )

La clé pour renvoyer le nom abrégé du jour lors de l'utilisation de DATE_FORMAT() fonction consiste à utiliser le spécificateur de format applicable.

Dans MariaDB, le spécificateur de format pour le nom abrégé du jour est :%a

Exemple

Voici un exemple pour illustrer :

SELECT DATE_FORMAT('2023-07-25', '%a');

Résultat :

+---------------------------------+
| DATE_FORMAT('2023-07-25', '%a') |
+---------------------------------+
| Tue                             |
+---------------------------------+

Voici un autre exemple qui s'étend sur les différents jours de la semaine :

SELECT 
    DATE_FORMAT('2023-07-24', '%a') AS "1",
    DATE_FORMAT('2023-07-25', '%a') AS "2",
    DATE_FORMAT('2023-07-26', '%a') AS "3",
    DATE_FORMAT('2023-07-27', '%a') AS "4",
    DATE_FORMAT('2023-07-28', '%a') AS "5",
    DATE_FORMAT('2023-07-29', '%a') AS "6",
    DATE_FORMAT('2023-07-30', '%a') AS "7";

Résultat :

+------+------+------+------+------+------+------+
| 1    | 2    | 3    | 4    | 5    | 6    | 7    |
+------+------+------+------+------+------+------+
| Mon  | Tue  | Wed  | Thu  | Fri  | Sat  | Sun  |
+------+------+------+------+------+------+------+

Vous pouvez également renvoyer d'autres unités de date et d'heure, mais cet article concerne spécifiquement le retour du nom abrégé du jour. Voir MariaDB Format Strings pour une liste des spécificateurs de format qui peuvent être utilisés avec DATE_FORMAT() .

Autres approches

Il existe d'autres façons d'obtenir le nom abrégé du jour à partir d'une date qui implique de couper la première partie de la journée.

Cependant, cela peut être plus sujet aux erreurs que la méthode ci-dessus (en plus, c'est plus compliqué). Vous pourriez obtenir des résultats inattendus en utilisant cette méthode, en particulier lorsque vous travaillez avec différentes langues.

Voici quelques exemples pour illustrer ce que je veux dire.

Au lieu d'utiliser le %a spécificateur de format comme nous l'avons fait dans l'exemple précédent, nous pourrions utiliser le %W spécificateur de format pour renvoyer le nom complet du jour, puis renvoyer raccourcir ce résultat avec une fonction telle que LEFT() .

Exemple :

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short;

Résultat :

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Nous pourrions également utiliser une fonction comme CAST() pour convertir en un type de données avec seulement trois caractères, comme ceci :

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short;

Résultat :

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Cela fonctionne bien lorsque vous travaillez avec la langue anglaise (et peut-être d'autres langues). Mais voyons ce qui se passe lorsque nous passons à une autre langue, par exemple le japonais :

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;

Résultat :

+-----------+-----------+
| Full      | Short     |
+-----------+-----------+
| 火曜日     | 火曜日     |
+-----------+-----------+

Dans ce cas, il n'y a pas de différence.

En revanche, voici ce qui se passe lorsque nous utilisons le %a spécificateur de format pour renvoyer le nom court du jour :

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;

Résultat :

+-----------+-------+
| Full      | Short |
+-----------+-------+
| 火曜日     | 火    |
+-----------+-------+

Je vous recommande donc d'utiliser le %a spécificateur de format chaque fois que possible.