MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie WEEKDAY() in MariaDB funktioniert

In MariaDB WEEKDAY() ist eine eingebaute Datums- und Uhrzeitfunktion, die den Wochentag eines bestimmten Datums 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 beginnt für Montag bei Null (also 0 =Montag, 1 =Dienstag usw.). Dies steht im Gegensatz zu DAYOFWEEK() , die dem ODBC-Standard entspricht (1 =Sonntag, 2 =Montag usw.).

Syntax

Die Syntax lautet wie folgt:

WEEKDAY(date) 

Wobei date ist das Datum, aus dem der Wochentag abgerufen werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT WEEKDAY('2030-01-25'); 

Ergebnis:

+-----------------------+| WOCHENTAG('2030-01-25') |+-----------------------+| 4 |+-----------------------+

Im Vergleich zum Tagesnamen

Hier ist ein weiterer neben DAYNAME() um den Tagesnamen zurückzugeben:

SELECT 
    WEEKDAY('2030-01-21'),
    DAYNAME('2030-01-21'); 

Ergebnis:

+-----------------------+--------------------- -+| WOCHENTAG('2030-01-21') | TAGESNAME('2030-01-21') |+----------------------+-------------- ---------+| 0 | Montag |+-----------------------+------------------------------- +

Wie bereits erwähnt, beginnt die Indexnummerierung für Montag bei 0.

Hier ist Sonntag:

SELECT 
    WEEKDAY('2030-01-20'),
    DAYNAME('2030-01-20'); 

Ergebnis:

+-----------------------+--------------------- -+| WOCHENTAG('2030-01-20') | TAGESNAME('2030-01-20') |+----------------------+-------------- ---------+| 6 | Sonntag |+-------------------------------+------------------------------- +

Datum/Uhrzeit-Werte

Es funktioniert auch mit datetime-Werten:

SELECT WEEKDAY('2030-01-24 10:30:45'); 

Ergebnis:

+-------------------------------+| WOCHENTAG('2030-01-24 10:30:45') |+-------------------------------+ | 3 |+-------------------------------+

Zero Days

Null Tage ergeben null .

Beispiel:

SELECT WEEKDAY('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 WEEKDAY(20300125); 

Ergebnis:

+-------------------+| WOCHENTAG(20300125) |+------------------------------+| 4 |+-------------------------------+

Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):

SELECT WEEKDAY(300125); 

Ergebnis:

+----------------+| WOCHENTAG(300125) |+----------------+| 4 |+----------------+

Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:

SELECT WEEKDAY(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 
    WEEKDAY('2030/01/25'),
    WEEKDAY('2030,01,25'),
    WEEKDAY('2030:01:25'),
    WEEKDAY('2030;01!25'); 

Ergebnis (bei vertikaler Ausgabe):

WEEKDAY('2030/01/25'):4WOCHENTAG('2030,01,25'):4WEEKDAY('2030:01:25'):4WEEKDAY('2030;01!25'):4 

Aktuelles Datum

Wir können NOW() übergeben als Datumsargument, um das aktuelle Datum zu verwenden:

SELECT 
    NOW(),
    WEEKDAY(NOW()); 

Ergebnis:

+---------------------+----------------+| JETZT() | WOCHENTAG(JETZT()) |+---------------------+----------------+| 2021-05-15 09:44:50 | 5 |+---------------------+----------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, WEEKDAY() gibt null zurück :

SELECT WEEKDAY('Homer'); 

Ergebnis:

+------------------+| WOCHENTAG('Homer') |+-----------------+| NULL |+------------------+

Fehlendes Argument

Aufruf von WEEKDAY() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT WEEKDAY(); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „WEEKDAY“

Und noch ein Beispiel:

SELECT WEEKDAY('2030-01-25', '2045-05-08'); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „WEEKDAY“