In MariaDB DAYOFWEEK()
ist eine integrierte Datums- und Zeitfunktion, die den Wochentag von einem bestimmten Datum zurückgibt.
Es akzeptiert ein Argument, nämlich das Datum, aus dem Sie den Wochentag extrahieren möchten.
Es gibt den Tag als Zahl zurück. Die Indexnummerierung folgt dem ODBC-Standard (1
=Sonntag, 2
=Montag usw.). Dies steht im Gegensatz zu WEEKDAY()
, wobei 0
=Montag, 1
=Dienstag usw.
Syntax
Die Syntax lautet wie folgt:
DAYOFWEEK(date)
Wobei date
ist das Datum, von dem der Tag abgerufen werden soll.
Beispiel
Hier ist ein Beispiel:
SELECT DAYOFWEEK('2030-01-25');
Ergebnis:
+-------------------------+| WOCHENTAG('2030-01-25') |+-------------------------+| 6 |+-------------------------+
Im Vergleich zum Tagesnamen
Hier ist ein weiterer neben DAYNAME()
um den Tagesnamen zurückzugeben:
SELECT
DAYOFWEEK('2030-01-20'),
DAYNAME('2030-01-20');
Ergebnis:
+--------------------+-------------------- ---+| WOCHENTAG('2030-01-20') | TAGESNAME('2030-01-20') |+--------------------+------------ -----------+| 1 | Sonntag |+--------------------+--------------------- --+
Wie bereits erwähnt, beginnt die Indexnummerierung für Sonntag bei 1.
Hier ist Samstag:
SELECT
DAYOFWEEK('2030-01-19'),
DAYNAME('2030-01-19');
Ergebnis:
+--------------------+-------------------- ---+| WOCHENTAG('2030-01-19') | TAGNAME('2030-01-19') |+--------------------+------------ -----------+| 7 | Samstag |+--------------------+--------------------- --+
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT DAYOFWEEK('2030-01-24 10:30:45');
Ergebnis:
+----------------------------------------------+| WOCHENTAG('2030-01-24 10:30:45') |+-------------------------------- -+| 5 |+-----------------------------------------------+
Zero Days
Null Tage ergeben null
.
Beispiel:
SELECT DAYOFWEEK('2030-00-00');
Ergebnis:
+-------------------------+| WOCHENTAG('2030-00-00') |+--------------------+| NULL |+-------------------------+
Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT DAYOFWEEK(20300125);
Ergebnis:
+---------------------+| WOCHENTAG(20300125) |+---------------------+| 6 |+---------------------+
Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):
SELECT DAYOFWEEK(300125);
Ergebnis:
+-------------------+| WOCHENTAG(300125) |+-------------------+| 6 |+------------------------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:
SELECT DAYOFWEEK(20300135);
Ergebnis:
+---------------------+| WOCHENTAG(20300135) |+---------------------+| 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
DAYOFWEEK('2030/01/25'),
DAYOFWEEK('2030,01,25'),
DAYOFWEEK('2030:01:25'),
DAYOFWEEK('2030;01!25');
Ergebnis (bei vertikaler Ausgabe):
WOCHENTAG('2030/01/25'):6WOCHENTAG('2030,01,25'):6WOCHENTAG('2030:01:25'):6WOCHENTAG('2030;01!25'):6Aktuelles Datum
Wir können
NOW()
übergeben als Datumsargument, um das aktuelle Datum zu verwenden:SELECT NOW(), DAYOFWEEK(NOW());
Ergebnis:
+---------------------+------------------+| JETZT() | WOCHENTAG(JETZT()) |+---------------------+------------------+| 2021-05-15 09:17:44 | 7 |+---------------------+------------------+Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird,
DAYOFWEEK()
gibtnull
zurück :SELECT DAYOFWEEK('Homer');
Ergebnis:
+--------------------+| WOCHENTAG('Homer') |+--------------------+| NULL |+--------------------+Fehlendes Argument
Aufruf von
DAYOFWEEK()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:SELECT DAYOFWEEK();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „DAYOFWEEK“Und noch ein Beispiel:
SELECT DAYOFWEEK('2030-01-25', '2045-05-08');
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „DAYOFWEEK“