MySQL HOUR()
Funkce se používá k vrácení hodinové složky z časové hodnoty.
Vrácená hodnota pro hodnotu denní doby bude mezi 0 a 23, avšak rozsah vrácený touto funkcí může být mnohem větší, protože čas datový typ není omezen pouze na denní dobu (lze jej také použít k vyjádření uplynulého času nebo časového intervalu mezi dvěma událostmi). To znamená, že vrácená hodnota může být větší než 24 hodin nebo dokonce záporná.
Syntaxe
Syntaxe této funkce vypadá takto:
HOUR(time)
Kde time
je časová hodnota, ze které chcete extrahovat hodinovou složku.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT HOUR('10:35:27');
Výsledek:
+------------------+ | HOUR('10:35:27') | +------------------+ | 10 | +------------------+
Příklad 2 – Více než 24 hodin
Jak bylo zmíněno, pokud je časová hodnota použita k reprezentaci uplynulého času nebo časového intervalu mezi dvěma událostmi, může mít hodinovou složku větší než 24 hodin. Následující příklad je tedy dokonale platný.
SELECT HOUR('310:35:27');
Výsledek:
+-------------------+ | HOUR('310:35:27') | +-------------------+ | 310 | +-------------------+
Příklad 3 – Záporné hodnoty
Záporné hodnoty jsou také dokonale platné pro čas datový typ. Pamatujte však, že HOUR()
funkce jej vrátí jako kladnou hodnotu:
SELECT HOUR('-310:35:27');
Výsledek:
+--------------------+ | HOUR('-310:35:27') | +--------------------+ | 310 | +--------------------+
Pokud se jedná o problém a potřebujete, aby byly záporné hodnoty vráceny jako záporné hodnoty, EXTRACT()
funkce může být to, co hledáte:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Výsledek:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+