In MariaDB, DAY()
ist ein Synonym für DAYOFMONTH()
. Es gibt den Tag des Monats ab einem bestimmten Datum zurück.
Es akzeptiert ein Argument, nämlich das Datum, von dem Sie den Tag des Monats zurückgeben möchten.
Das Ergebnis liegt im Bereich 1
bis 31
. Wenn das Datum jedoch einen Null-Tag-Teil hat (zum Beispiel '0000-00-00'
oder '2021-00-00'
), ist das Ergebnis 0
.
Syntax
Die Syntax lautet wie folgt:
DAY(date)
Wobei date
ist das Datum, aus dem der Tag extrahiert werden soll.
Beispiel
Hier ist ein Beispiel:
SELECT DAY('2045-05-18');
Ergebnis:
+-------------------+| TAG('2045-05-18') |+-------------------+| 18 |+------------------------------+
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT DAY('2045-05-18 01:10:15');
Ergebnis:
+-----------------------------------+| TAG('2045-05-18 01:10:15') |+------------------------------------+| 18 |+------------------------------------+
Zero Days
Hier ist ein Beispiel, das einen Nulltag im Datum verwendet:
SELECT DAY('0000-00-00');
Ergebnis:
+-------------------+| TAG('0000-00-00') |+-------------------+| 0 |+------------------------------+
Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT DAY(20220308);
Ergebnis:
+---------------+| TAG(20220308) |+---------------+| 8 |+---------------+
Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):
SELECT DAY(220308);
Ergebnis:
+-------------+| TAG(220308) |+------------+| 8 |+-------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:
SELECT DAY(220358);
Ergebnis:
+-------------+| TAG(220358) |+------------+| 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Ergebnis (bei vertikaler Ausgabe):
TAG('2028/12/30'):30TAG('2028,12,30'):30TAG('2028:12:30'):30TAG('2028;12!30'):30Aktuelles Datum
Wir können
NOW()
übergeben als Datumsargument, um das aktuelle Datum zu verwenden:SELECT NOW(), DAY(NOW());
Ergebnis:
+---------------------+------------+| JETZT() | TAG(JETZT()) |+---------------------+------------+| 2021-05-13 09:41:03 | 13 |+---------------------+------------+Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird,
DAY()
gibtnull
zurück :SELECT DAY('Oops!');
Ergebnis:
+--------------+| TAG('Ups!') |+--------------+| NULL |+--------------+Fehlendes Argument
Aufruf von
DAY()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:SELECT DAY();
Ergebnis:
ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwendenUnd noch ein Beispiel:
SELECT DAY('2030-01-25', '2045-05-08');
Ergebnis:
ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von „2045-05-08“)“ in Zeile 1 zu verwenden