In MariaDB können Sie das DATE_FORMAT()
verwenden Funktion, um verschiedene Datumsteile eines Datums zurückzugeben. Eines der Dinge, die Sie zurückgeben können, ist der kurze Tagesname. Zum Beispiel Tue
oder Wed
(statt Tuesday
oder Wednesday
).
Der „Short Day Name“-Formatbezeichner (%a
)
Der Schlüssel zur Rückgabe des kurzen Tagesnamens bei Verwendung von DATE_FORMAT()
Funktion ist es, den zutreffenden Formatbezeichner zu verwenden.
In MariaDB lautet der Formatbezeichner für den kurzen Tagesnamen:%a
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT DATE_FORMAT('2023-07-25', '%a');
Ergebnis:
+---------------------------------+ | DATE_FORMAT('2023-07-25', '%a') | +---------------------------------+ | Tue | +---------------------------------+
Hier ist ein weiteres Beispiel, das sich durch die verschiedenen Wochentage zieht:
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";
Ergebnis:
+------+------+------+------+------+------+------+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +------+------+------+------+------+------+------+ | Mon | Tue | Wed | Thu | Fri | Sat | Sun | +------+------+------+------+------+------+------+
Sie können auch andere Datums- und Zeiteinheiten zurückgeben, aber in diesem Artikel geht es speziell um die Rückgabe des kurzen Tagesnamens. Unter MariaDB-Formatzeichenfolgen finden Sie eine Liste von Formatbezeichnern, die mit DATE_FORMAT()
verwendet werden können .
Andere Ansätze
Es gibt andere Möglichkeiten, den kurzen Tagesnamen von einem Datum zu erhalten, bei dem der erste Teil des Tages abgeschnitten wird.
Dies kann jedoch fehleranfälliger sein als die obige Methode (und es ist komplizierter). Bei Verwendung dieser Methode könnten Sie einige unerwartete Ergebnisse erhalten, insbesondere wenn Sie mit verschiedenen Sprachen arbeiten.
Hier sind einige Beispiele, um zu demonstrieren, was ich meine.
Anstatt den %a
zu verwenden Formatbezeichner wie im vorherigen Beispiel, könnten wir den %W
verwenden Formatbezeichner, um den vollständigen Tagesnamen zurückzugeben, und kürzen Sie dann das Ergebnis mit einer Funktion wie LEFT()
zurück .
Beispiel:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short;
Ergebnis:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
Wir könnten alternativ eine Funktion wie CAST()
verwenden in einen Datentyp mit nur drei Zeichen zu konvertieren, wie z. B.:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short;
Ergebnis:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
Dies funktioniert gut, wenn Sie mit der englischen Sprache (und vielleicht einigen anderen Sprachen) arbeiten. Aber mal sehen, was passiert, wenn wir zu einer anderen Sprache wechseln – sagen wir Japanisch:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;
Ergebnis:
+-----------+-----------+ | Full | Short | +-----------+-----------+ | 火曜日 | 火曜日 | +-----------+-----------+
In diesem Fall gibt es keinen Unterschied.
Im Gegensatz dazu passiert Folgendes, wenn wir %a
verwenden Formatbezeichner, um den kurzen Tagesnamen zurückzugeben:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;
Ergebnis:
+-----------+-------+ | Full | Short | +-----------+-------+ | 火曜日 | 火 | +-----------+-------+
Daher würde ich empfehlen, den %a
zu verwenden Formatbezeichner wann immer möglich.