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

Wie DAYNAME() in MariaDB funktioniert

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'