In MariaDB, DAYNAME() ist eine eingebaute Datums- und Uhrzeitfunktion, die den Namen des Wochentags für ein bestimmtes Datum zurückgibt.
Es akzeptiert ein Argument, nämlich das Datum, aus dem Sie den Tagesnamen extrahieren möchten.
Syntax
Die Syntax sieht so aus:
DAYNAME(date)
Wobei date ist das Datum, von dem der Tagesname abgerufen werden soll.
Beispiel
Hier ist ein Beispiel:
SELECT DAYNAME('2045-10-17'); Ergebnis:
+-----------------------+| TAGESNAME('2045-10-17') |+-----------------------+| Dienstag |+-------------------------------+ Sprache
Die für den Tagesnamen verwendete Sprache wird durch den Wert von lc_time_names gesteuert Systemvariable.
Hier ist ein Beispiel, das zeigt, wie sich dies auf das Ergebnis auswirkt:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17'); Ergebnis:
+-----------------------+| TAGESNAME('2045-10-17') |+-----------------------+| Dienstag |+-----------------------+
Und zurück zu en_US wechseln , was der Standardwert ist:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); Ergebnis:
+-----------------------+| TAGESNAME('2045-10-17') |+-----------------------+| Dienstag |+-------------------------------+ Hier ist eine Liste der von MariaDB unterstützten Gebietsschemas, und hier erfahren Sie, wie Sie Ihre eigene Liste verfügbarer Gebietsschemas zurückgeben.
Wo wir gerade dabei sind, hier ist ein Beitrag, der erklärt, wie Sie den Wert Ihrer lc_time_names überprüfen können Systemvariable.
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT DAYNAME('2030-01-25 10:30:45'); Ergebnis:
+-------------------------------+| DAYNAME('2030-01-25 10:30:45') |+-------------------------------+ | Freitag |+-------------------------------+ Zero Days
Wenn das Datum einen Nulltag enthält, wird null zurückgegeben :
SELECT DAYNAME('2030-00-00'); Ergebnis:
+-----------------------+| TAGESNAME('2030-00-00') |+-----------------------+| NULL |+-----------------------+ Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT DAYNAME(20201108); Ergebnis:
+-------------------+| DAYNAME(20201108) |+-------------------+| Sonntag |+------------------------------+
Zweistellige Jahreszahlen sind in Ordnung:
SELECT DAYNAME(201108); Ergebnis:
+----------------+| TAGESNAME(201108) |+----------------+| Sonntag |+----------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Monatsteil auf einen ungültigen Monat erhöhe:
SELECT DAYNAME(209908); Ergebnis:
+----------------+| TAGESNAME(209908) |+----------------+| NULL |+----------------+
Andere Trennzeichen
Sie können andere Trennzeichen für das Datum verwenden. MariaDB ist ziemlich nachsichtig, wenn es um Trennzeichen bei Datumsangaben geht. Hier sind einige gültige Beispiele:
SELECT
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19'); Ergebnis (bei vertikaler Ausgabe):
DAYNAME('2027/08/19'):DonnerstagDAYNAME('2027,08,19'):DonnerstagDAYNAME('2027:08:19'):DonnerstagDAYNAME('2027;08!19'):Donnerstag Aktuelles Datum
Wir können NOW() übergeben als Datumsargument, um das aktuelle Datum zu verwenden:
SELECT
NOW(),
DAYNAME(NOW());
Ergebnis:
+---------------------+----------------+| JETZT() | TAGESNAME(JETZT()) |+---------------------+----------------+| 2021-05-13 13:29:10 | Donnerstag |+---------------------+----------------+
Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird, DAYNAME() gibt null zurück :
SELECT DAYNAME('Dang!');
Ergebnis:
+------------------+| TAGESNAME('Verdammt!') |+-----------------+| NULL |+------------------+ Fehlendes Argument
Aufruf von DAYNAME() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT DAYNAME();
Ergebnis:
ERROR 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'DAYNAME'
Und noch ein Beispiel:
SELECT DAYNAME('2030-01-25', '2045-05-08');
Ergebnis:
ERROR 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'DAYNAME'