V MariaDB, QUARTER()
je vestavěná funkce data a času, která vrací čtvrtletí z daného výrazu data.
Přijímá jeden argument, což je datum, ze kterého chcete extrahovat čtvrtletí.
Vrátí čtvrtletí jako číslo v rozsahu 1
až 4
. Pro data s nula měsíci (např. 0000-00-00
nebo 2025-00-00
), výsledkem je 0
.
Syntaxe
Syntaxe vypadá takto:
QUARTER(date)
Kde date
je výraz data, ze kterého se má získat čtvrtletí.
Příklad
Zde je příklad:
SELECT QUARTER('2030-08-01');
Výsledek:
+-----------------------+| QUARTER('2030-08-01') |+------------------------+| 3 |+-----------------------+
Hodnoty data a času
Funguje také s hodnotami datetime:
SELECT QUARTER('2030-08-01 10:30:45');
Výsledek:
+--------------------------------+| QUARTER('2030-08-01 10:30:45') |+---------------------------------+ | 3 |+--------------------------------+
Nula měsíců
Výsledkem dat s nulou měsíců je 0
.
Příklad:
SELECT QUARTER('2030-00-00');
Výsledek:
+-----------------------+| ČTVRTLETÍ('2030-00-00') |+------------------------+| 0 |+-----------------------+
Číselná data
Je také možné předávat data jako číslo, pokud to dává smysl jako datum.
Příklad
SELECT QUARTER(20301125);
Výsledek:
+-------------------+| ČTVRTLETÍ(20301125) |+-------------------+| 4 |+-------------------+
Nebo dokonce následující (který používá dvouciferný rok):
SELECT QUARTER(301125);
Výsledek:
+------------------+| ČTVRTLETÍ(301125) |+-----------------+| 4 |+-----------------+
Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:
SELECT QUARTER(20301135);
Výsledek:
+-------------------+| ČTVRTLETÍ(20301135) |+-------------------+| NULL |+-------------------+1 řádek v sadě, 1 upozornění (0,000 s)
Varování můžeme zkontrolovat takto:
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
QUARTER('2030/06/25'),
QUARTER('2030,06,25'),
QUARTER('2030:06:25'),
QUARTER('2030;06!25');
Výsledek (při použití vertikálního výstupu):
QUARTER('2030/06/25'):2QUARTER('2030,06,25'):2QUARTER('2030:06:25'):2QUARTER('2030;06!25'):2Aktuální datum
Můžeme předat
NOW()
jako argument datetime pro použití aktuálního data:SELECT NOW(), QUARTER(NOW());
Výsledek:
+---------------------+----------------+| NYNÍ() | ČTVRTLETÍ(NYNÍ()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+---------------------+----------------+Neplatné argumenty
Při předání neplatného argumentu
QUARTER()
vrátínull
:SELECT QUARTER('2030-65-78');
Výsledek:
+-----------------------+| QUARTER('2030-65-78') |+------------------------+| NULL |+-----------------------+1 řádek v sadě, 1 upozornění (0,000 s)Zkontrolujte 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í
QUARTER()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:SELECT QUARTER();
Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ')' na řádku 1A další příklad:
SELECT QUARTER('2030-12-10', '2031-12-10');
Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ''2031-12-10')' na řádku 1