Nachfolgend finden Sie 4 Funktionen, mit denen Sie das Jahr aus einem Datum in MariaDB zurückgeben können. Drei Funktionen geben nur das Jahr zurück, und eine gibt sowohl das Jahr als auch die Woche zurück.
Das YEAR()
Funktion
Das YEAR()
Die Funktion gibt das Jahr für ein bestimmtes Datum zurück. Das Ergebnis liegt im Bereich 1000
bis 9999
, oder 0
für Datumsangaben, die ein Nulljahr haben (z. B. 0000-00-00
).
Beispiel:
SELECT YEAR('2023-07-25');
Ergebnis:
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+
Der EXTRACT()
Funktion
Der
Mit dieser Funktion können Sie eine bestimmte Einheit aus dem Datum extrahieren. Daher können Sie es verwenden, um das Jahr (sowie andere Einheiten) aus dem Datum zu extrahieren.EXTRACT
()
Beispiel:
SELECT EXTRACT(YEAR FROM '2023-07-25');
Ergebnis:
+---------------------------------+ | EXTRACT(YEAR FROM '2023-07-25') | +---------------------------------+ | 2023 | +---------------------------------+
Das DATE_FORMAT()
Funktion
Das DATE_FORMAT()
Mit der Funktion können Sie ein Datum basierend auf einer Formatzeichenfolge formatieren. Der Formatstring gibt an, wie das Datum formatiert werden soll.
Sie können diese Funktion daher verwenden, um das Jahr (sowie jede andere Einheit) aus dem Datum zurückzugeben. Es gibt verschiedene Formatbezeichner für die Rückgabe des Jahres in verschiedenen Formaten. Zum Beispiel eine vierstellige Jahreszahl, eine zweistellige Jahreszahl usw.
Hier ist ein Beispiel, das das Jahr in verschiedenen Formen zurückgibt:
SELECT
DATE_FORMAT('2023-01-01', '%X') AS "%X",
DATE_FORMAT('2023-01-01', '%x') AS "%x",
DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
DATE_FORMAT('2023-01-01', '%y') AS "%y";
Ergebnis:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2022 | 2023 | 23 | +------+------+------+------+
Beachten Sie, dass %x
gab eine andere Jahreszahl als die anderen zurück.
Hier ist eine Beschreibung jedes dieser Formatbezeichner, die erklärt, warum %x
hat ein anderes Ergebnis zurückgegeben:
Formatbezeichner | Beschreibung |
---|---|
%X | Jahr mit 4 Ziffern, wenn der erste Tag der Woche Sonntag ist. Wird mit %V verwendet . |
%x | Jahr mit 4 Ziffern, wenn der erste Tag der Woche Montag ist. Wird mit %v verwendet . |
%Y | Jahr mit 4 Ziffern. |
%y | Jahr mit 2 Ziffern. |
Und hier ist eine Beschreibung von %V
und %v
wie in der obigen Tabelle angegeben:
Formatbezeichner | Beschreibung |
---|---|
%V | Wochennummer (01-53), wenn der erste Tag der Woche Sonntag ist. Wird mit %X verwendet . |
%v | Wochennummer (01-53), wenn der erste Tag der Woche Montag ist. Wird mit %x verwendet . |
Wir könnten also diese Formatbezeichner zum obigen Beispiel hinzufügen und Folgendes erhalten:
SELECT
DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";
Ergebnis:
+----------+----------+ | %X, %V | %x, %v | +----------+----------+ | 2023, 01 | 2022, 52 | +----------+----------+
Beachten Sie, dass %x
gibt nicht immer ein anderes Jahr zurück – es hängt vom tatsächlich verwendeten Datum ab. Manchmal ist es %X
die ein anderes Jahr als die anderen zurückgibt.
Verschieben wir das Datum um ein Jahr nach vorne:
SELECT
DATE_FORMAT('2024-01-01', '%X') AS "%X",
DATE_FORMAT('2024-01-01', '%x') AS "%x",
DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
DATE_FORMAT('2024-01-01', '%y') AS "%y";
Ergebnis:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2024 | 2024 | 24 | +------+------+------+------+
Diesmal ist es %X
das ist das Seltsame. Wie in der obigen Tabelle erläutert, hängt es davon ab, ob der erste Tag der Woche Sonntag oder Montag ist.
Wenn wir uns weiter in das Jahr bewegen, geben alle Formatbezeichner natürlich dasselbe Jahr zurück:
SELECT
DATE_FORMAT('2024-12-12', '%X') AS "%X",
DATE_FORMAT('2024-12-12', '%x') AS "%x",
DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
DATE_FORMAT('2024-12-12', '%y') AS "%y";
Ergebnis:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2024 | 2024 | 2024 | 24 | +------+------+------+------+
Eine vollständige Liste der Formatzeichenfolgen/Spezifizierer finden Sie unter MariaDB-Formatzeichenfolgen.
Die YEARWEEK()
Funktion
Die YEARWEEK()
Die Funktion gibt das Jahr und die Woche für ein bestimmtes Datum zurück.
Beispiel:
SELECT YEARWEEK('2023-01-01');
Ergebnis:
+------------------------+ | YEARWEEK('2023-01-01') | +------------------------+ | 202301 | +------------------------+
Das Jahr im Ergebnis kann sich von dem Jahr im Datumsargument für die erste und letzte Woche des Jahres unterscheiden.
Folgendes passiert, wenn wir ein Jahr vorrücken:
SELECT YEARWEEK('2024-01-01');
Ergebnis:
+------------------------+ | YEARWEEK('2024-01-01') | +------------------------+ | 202353 | +------------------------+
Die YEARWEEK()
Die Funktion akzeptiert ein optionales zweites Argument, um den Modus anzugeben. Das tatsächliche Ergebnis dieser Funktion hängt vom verwendeten Modus ab. Wenn das Modusargument weggelassen wird, der Wert von default_week_format
Systemvariable wird verwendet.
Siehe Wie YEARWEEK()
Funktioniert in MariaDB, um mehr über die Modi und Beispiele zu erfahren.