V MariaDB, WEEKOFYEAR()
je vestavěná funkce data a času, která vrací kalendářní týden daného data jako číslo v rozsahu od 1
až 53
.
Je to ekvivalent použití WEEK()
funguje v režimu 3, a proto je jeho výsledek v souladu s ISO 8601:1988.
Přijímá jeden argument; datum, ze kterého chcete extrahovat týden.
Syntaxe
Syntaxe vypadá takto:
WEEKOFYEAR(date)
Kde date
je výraz data, ze kterého se získá kalendářní týden.
Příklad
Zde je příklad:
SELECT WEEKOFYEAR('2030-01-01');
Výsledek:
+--------------------------+| WEEKOFYEAR('2030-01-01') |+--------------------------+| 1 |+--------------------------+
Je to ekvivalent provedení následujícího:
SELECT WEEK('2030-01-01', 3);
Výsledek:
+-----------------------+| TÝDEN('2030-01-01', 3) |+------------------------+| 1 |+-----------------------+
Hodnoty data a času
WEEKOFYEAR()
funkce také pracuje s hodnotami datetime:
SELECT WEEKOFYEAR('2030-08-01 10:30:45');
Výsledek:
+-----------------------------------+| WEEKOFYEAR('2030-08-01 10:30:45') |+---------------------------------- --+| 31 |+-----------------------------------+
Číselná data
Je také možné předávat data jako číslo, pokud to dává smysl jako datum.
Příklad
SELECT WEEKOFYEAR(20301125);
Výsledek:
+----------------------+| WEEKOFYEAR(20301125) |+-----------------------+| 48 |+----------------------+
Nebo dokonce následující (který používá dvouciferný rok):
SELECT WEEKOFYEAR(301125);
Výsledek:
+---------------------+| WEEKOFYEAR(301125) |+--------------------+| 48 |+--------------------+
Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:
SELECT WEEKOFYEAR(20301135);
Výsledek:
+----------------------+| WEEKOFYEAR(20301135) |+-----------------------+| NULL |+----------------------+1 řádek v sadě, 1 upozornění (0,000 s)
Vrátil null
s varováním.
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+----------------------------- ---------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ --------+| Upozornění | 1292 | Nesprávná hodnota data a času:'20301135' |+---------+------+------------------------- --------------+
Další oddělovače
Pro datum můžete použít jiné oddělovače. MariaDB je docela shovívavá, pokud jde o oddělovače dat. Zde je několik platných příkladů:
SELECT
WEEKOFYEAR('2030/06/25'),
WEEKOFYEAR('2030,06,25'),
WEEKOFYEAR('2030:06:25'),
WEEKOFYEAR('2030;06!25');
Výsledek (při použití vertikálního výstupu):
WEEKOFYEAR('2030/06/25'):26WEEKOFYEAR('2030,06,25'):26WEEKOFYEAR('2030:06:25'):26WEEKOFYEAR('2030;06!25'):26Aktuální datum
Můžeme předat
NOW()
jako argument datetime pro použití aktuálního data:SELECT NOW(), WEEKOFYEAR(NOW());
Výsledek:
+---------------------+-------------------+| NYNÍ() | WEEKOFYEAR(NYNÍ()) |+---------------------+-------------------+ | 2021-05-17 09:42:13 | 20 |+---------------------+-------------------+Neplatné argumenty
Při předání neplatného argumentu
WEEKOFYEAR()
vrátínull
:SELECT WEEKOFYEAR('2030-65-78');
Výsledek:
+--------------------------+| WEEKOFYEAR('2030-65-78') |+--------------------------+| NULL |+--------------------------+1 řádek v sadě, 1 upozornění (0,000 s)Ukažme varování:
SHOW WARNINGS;
Výsledek:
+---------+------+----------------------------- -----------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ ----------+| Upozornění | 1292 | Nesprávná hodnota data a času:'2030-65-78' |+---------+------+--------------------- --------------------+Chybí argument
Volání
WEEKOFYEAR()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:SELECT WEEKOFYEAR();
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'WEEKOFYEAR'A další příklad:
SELECT WEEKOFYEAR('2030-12-10', 1);
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'WEEKOFYEAR'