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

4 Funktionen zum Zurückgeben des Jahres aus einem Datum in MariaDB

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 EXTRACT () 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.

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.