In MariaDB, YEAR()
ist eine eingebaute Datums- und Uhrzeitfunktion, die das Jahr aus einem gegebenen Datumsausdruck zurückgibt.
Es akzeptiert ein Argument, nämlich das Datum, aus dem Sie das Jahr extrahieren möchten.
Es gibt das Jahr als Zahl im Bereich 1000
zurück bis 9999
. Für Nulldaten (z. B. 0000-00-00
), ist das Ergebnis 0
.
Syntax
Die Syntax sieht so aus:
YEAR(date)
Wobei date
ist der Datumsausdruck, aus dem das Jahr abgerufen werden soll.
Beispiel
Hier ist ein Beispiel:
SELECT YEAR('2030-08-01');
Ergebnis:
+--------------------+| JAHR('2030-08-01') |+--------------------+| 2030 |+--------------------+
Datum/Uhrzeit-Werte
Es funktioniert auch mit datetime-Werten:
SELECT YEAR('2030-08-01 10:30:45');
Ergebnis:
+-------------------------------------+| JAHR('2030-08-01 10:30:45') |+-------------------------------------+| 2030 |+------------------------------------+
Nulldaten
Nulldaten ergeben 0
.
Beispiel:
SELECT YEAR('0000-00-00');
Ergebnis:
+--------------------+| JAHR('0000-00-00') |+--------------------+| 0 |+--------------------+
Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT YEAR(20301125);
Ergebnis:
+----------------+| JAHR(20301125) |+----------------+| 2030 |+----------------+
Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):
SELECT YEAR(301125);
Ergebnis:
+--------------+| JAHR(301125) |+--------------+| 2030 |+--------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:
SELECT YEAR(20301135);
Ergebnis:
+----------------+| JAHR(20301135) |+----------------+| NULL |+----------------+1 Zeile im Satz, 1 Warnung (0,000 Sek.)
Wir können die Warnung wie folgt überprüfen:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------- ---------+| Ebene | Code | Nachricht |+---------+------+------------------------------ --------+| Warnung | 1292 | Falscher datetime-Wert:'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
YEAR('2030/06/25'),
YEAR('2030,06,25'),
YEAR('2030:06:25'),
YEAR('2030;06!25');
Ergebnis (bei vertikaler Ausgabe):
JAHR('2030/06/25'):2030JAHR('2030,06,25'):2030JAHR('2030:06:25'):2030JAHR('2030;06!25'):2030Aktuelles Datum
Wir können
NOW()
übergeben als datetime-Argument, um das aktuelle Datum zu verwenden:SELECT NOW(), YEAR(NOW());
Ergebnis:
+---------------------+---------------------+| JETZT() | JAHR(JETZT()) |+---------------------+-------------+| 2021-05-18 08:55:02 | 2021 |+---------------------+---------------------+Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird,
YEAR()
gibtnull
zurück :SELECT YEAR('2030-65-78');
Ergebnis:
+--------------------+| JAHR('2030-65-78') |+--------------------+| NULL |+--------------------+1 Zeile im Satz, 1 Warnung (0,001 Sek.)Überprüfen Sie die Warnung:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------- -----------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ----------+| Warnung | 1292 | Falscher datetime-Wert:'2030-65-78' |+---------+------+-------------------- --------------------+Fehlendes Argument
Aufruf von
YEAR()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:SELECT YEAR();
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 YEAR('2030-12-10', '2031-12-10');
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 „2031-12-10“)“ in Zeile 1 zu verwenden