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'):DonnerstagAktuelles 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()
gibtnull
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'