In MariaDB, LAST_DAY()
ist eine integrierte Datums- und Uhrzeitfunktion, die den letzten Tag des Monats für ein bestimmtes Datum zurückgibt.
Es akzeptiert ein Argument, nämlich das Datum, für das Sie den letzten Tag des Monats finden möchten.
Syntax
Die Syntax lautet wie folgt:
LAST_DAY(date)
Wobei date
ist der Datumsausdruck, für den Sie den letzten Tag des Monats finden möchten.
Beispiel
Hier ist ein Beispiel:
SELECT LAST_DAY('2030-02-01');
Ergebnis:
+------------------------+ | LAST_DAY('2030-02-01') | +------------------------+ | 2030-02-28 | +------------------------+
In diesem Fall verwenden wir ein Datum im Februar. Wie sich herausstellt, hat der Februar in diesem Jahr 28 Tage.
Folgendes passiert, wenn wir das Datum auf das nächste Schaltjahr erhöhen:
SELECT LAST_DAY('2032-02-01');
Ergebnis:
+------------------------+ | LAST_DAY('2032-02-01') | +------------------------+ | 2032-02-29 | +------------------------+
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT LAST_DAY('2030-02-01 10:30:45');
Ergebnis:
+---------------------------------+ | LAST_DAY('2030-02-01 10:30:45') | +---------------------------------+ | 2030-02-28 | +---------------------------------+
Nulldaten
Nulldaten führen zu null
.
Beispiel:
SELECT LAST_DAY('0000-00-00');
Ergebnis:
+------------------------+ | LAST_DAY('0000-00-00') | +------------------------+ | NULL | +------------------------+
Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT LAST_DAY(20301125);
Ergebnis:
+--------------------+ | LAST_DAY(20301125) | +--------------------+ | 2030-11-30 | +--------------------+
Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):
SELECT LAST_DAY(301125);
Ergebnis:
+------------------+ | LAST_DAY(301125) | +------------------+ | 2030-11-30 | +------------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:
SELECT LAST_DAY(20301135);
Ergebnis:
+--------------------+ | LAST_DAY(20301135) | +--------------------+ | NULL | +--------------------+ 1 row in set, 1 warning (0.000 sec)
Wir können die Warnung wie folgt überprüfen:
SHOW WARNINGS;
Ergebnis:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
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
LAST_DAY('2030/06/25'),
LAST_DAY('2030,06,25'),
LAST_DAY('2030:06:25'),
LAST_DAY('2030;06!25');
Ergebnis (bei vertikaler Ausgabe):
LAST_DAY('2030/06/25'): 2030-06-30 LAST_DAY('2030,06,25'): 2030-06-30 LAST_DAY('2030:06:25'): 2030-06-30 LAST_DAY('2030;06!25'): 2030-06-30
Aktuelles Datum
Wir können NOW()
übergeben als datetime-Argument, um das aktuelle Datum zu verwenden:
SELECT
NOW(),
LAST_DAY(NOW());
Ergebnis:
+---------------------+-----------------+ | NOW() | LAST_DAY(NOW()) | +---------------------+-----------------+ | 2021-05-18 09:39:01 | 2021-05-31 | +---------------------+-----------------+
Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird, LAST_DAY()
gibt null
zurück :
SELECT LAST_DAY('2030-65-78');
Ergebnis:
+------------------------+ | LAST_DAY('2030-65-78') | +------------------------+ | NULL | +------------------------+ 1 row in set, 1 warning (0.000 sec)
Überprüfen Sie die Warnung:
SHOW WARNINGS;
Ergebnis:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
Fehlendes Argument
Aufruf von LAST_DAY()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT LAST_DAY();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'
Und noch ein Beispiel:
SELECT LAST_DAY('2030-12-10', '2031-12-10');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'