V MariaDB HOUR()
je vestavěná funkce data a času, která vrací hodinu z daného časového výrazu.
Přijímá jeden argument, což je čas, ze kterého chcete extrahovat hodinu.
Pro hodnoty denní doby vrátí hodinu jako číslo v rozsahu 0
do 23
. Nicméně rozsah TIME
hodnoty mohou být mnohem větší, a proto může být vrácená hodnota mnohem vyšší než 23
.
Vrácená hodnota je vždy kladná, i když je zadán záporný čas.
Syntaxe
Syntaxe vypadá takto:
HOUR(time)
Kde time
je časový výraz pro získání hodiny.
Příklad
Zde je příklad:
SELECT HOUR('10:30:45');
Výsledek:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Hodnoty data a času
Funguje také s hodnotami datetime:
SELECT HOUR('2030-02-01 10:30:45');
Výsledek:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Větší hodiny
TIME
hodnoty mohou být v rozsahu '-838:59:59.999999'
na '838:59:59.999999'
.
Hodinová část proto může být mnohem vyšší než 23
:
SELECT HOUR('578:30:45');
Výsledek:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Záporné časy
Negativní časy vrátí pozitivní výsledek.
Příklad
SELECT HOUR('-578:30:45');
Výsledek:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Otevírací doba mimo rozsah
Časové hodnoty mimo rozsah '-838:59:59.999999'
na '838:59:59.999999'
vrátí 838
.
Příklad:
SELECT HOUR('978:30:45');
Výsledek (při použití vertikálního výstupu):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Aktuální datum
Můžeme předat NOW()
jako argument datetime pro použití aktuálního času:
SELECT
NOW(),
HOUR(NOW());
Výsledek:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Neplatné argumenty
Při předání neplatného argumentu HOUR()
vrátí null
:
SELECT HOUR('Ten Thirty AM');
Výsledek:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Chybí argument
Volání HOUR()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT HOUR();
Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
A další příklad:
SELECT HOUR('10:30:45', '06:30:45');
Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1