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.