In MariaDB WEEKOFYEAR() ist eine integrierte Datums- und Uhrzeitfunktion, die die Kalenderwoche eines bestimmten Datums als Zahl im Bereich von 1 zurückgibt bis 53 .
Dies entspricht der Verwendung von WEEK() Funktion im Modus 3, und daher entspricht das Ergebnis ISO 8601:1988.
Es akzeptiert ein Argument; das Datum, aus dem Sie die Woche extrahieren möchten.
Syntax
Die Syntax sieht so aus:
WEEKOFYEAR(date)
Wobei date ist der Datumsausdruck, aus dem die Kalenderwoche abgerufen werden soll.
Beispiel
Hier ist ein Beispiel:
SELECT WEEKOFYEAR('2030-01-01'); Ergebnis:
+---------------------+| WOCHENJAHR('2030-01-01') |+---------------------+| 1 |+---------------------+ Dies entspricht dem folgenden Vorgang:
SELECT WEEK('2030-01-01', 3); Ergebnis:
+-----------------------+| WOCHE('2030-01-01', 3) |+-----------------------+| 1 |+-----------------------+ Datum/Uhrzeit-Werte
Das WEEKOFYEAR() Funktion funktioniert auch mit datetime-Werten:
SELECT WEEKOFYEAR('2030-08-01 10:30:45'); Ergebnis:
+-----------------------------------+| WOCHE DES JAHRES('2030-08-01 10:30:45') |+-------------------------------- --+| 31 |+-----------------------------------+ Numerische Daten
Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.
Beispiel
SELECT WEEKOFYEAR(20301125); Ergebnis:
+----------------------+| WOCHE DES JAHRES(20301125) |+----------------------+| 48 |+----------------------+
Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):
SELECT WEEKOFYEAR(301125); Ergebnis:
+--------------------+| WOCHENJAHR(301125) |+--------------------+| 48 |+--------------------+
Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:
SELECT WEEKOFYEAR(20301135); Ergebnis:
+----------------------+| WOCHE DES JAHRES(20301135) |+----------------------+| NULL |+----------------------+1 Zeile im Satz, 1 Warnung (0,000 Sek.)
Es hat null zurückgegeben mit einer Warnung.
Schauen wir uns die Warnung an:
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
WEEKOFYEAR('2030/06/25'),
WEEKOFYEAR('2030,06,25'),
WEEKOFYEAR('2030:06:25'),
WEEKOFYEAR('2030;06!25'); Ergebnis (bei vertikaler Ausgabe):
WOCHE DES JAHRES('2030/06/25'):26WOCHE DES JAHRES('2030,06,25'):26WOCHE DESJAHRES('2030:06:25'):26WOCHE DESJAHRES('2030;06!25'):26 Aktuelles Datum
Wir können NOW() übergeben als datetime-Argument, um das aktuelle Datum zu verwenden:
SELECT
NOW(),
WEEKOFYEAR(NOW());
Ergebnis:
+---------------------+-------------------+| JETZT() | WOCHENJAHR(JETZT()) |+---------------------+-------------------+ | 2021-05-17 09:42:13 | 20 |+---------------------+-------------------+
Ungültige Argumente
Wenn ein ungültiges Argument übergeben wird, WEEKOFYEAR() gibt null zurück :
SELECT WEEKOFYEAR('2030-65-78');
Ergebnis:
+---------------------+| WOCHE DES JAHRES('2030-65-78') |+---------------------+| NULL |+-------------------------+1 Zeile im Satz, 1 Warnung (0,000 Sek.)
Lassen Sie uns die Warnung anzeigen:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------- -----------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ----------+| Warnung | 1292 | Falscher datetime-Wert:'2030-65-78' |+---------+------+-------------------- --------------------+
Fehlendes Argument
Aufruf von WEEKOFYEAR() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT WEEKOFYEAR();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „WEEKOFYEAR“
Und noch ein Beispiel:
SELECT WEEKOFYEAR('2030-12-10', 1);
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „WEEKOFYEAR“