MySQL HOUR()
funkcja służy do zwracania składnika godziny z wartości czasu.
Zwracana wartość dla wartości pory dnia będzie wynosić od 0 do 23, jednak zakres zwracany przez tę funkcję może być znacznie większy, ponieważ czas typ danych nie jest ograniczony tylko do pory dnia (może być również używany do reprezentowania czasu, który upłynął lub odstępu czasu między dwoma zdarzeniami). Oznacza to, że zwrócona wartość może być większa niż 24 godziny lub nawet ujemna.
Składnia
Składnia tej funkcji wygląda następująco:
HOUR(time)
Gdzie time
to wartość czasu, z której chcesz wyodrębnić składnik godziny.
Przykład 1 – Podstawowe użycie
Oto przykład do zademonstrowania.
SELECT HOUR('10:35:27');
Wynik:
+------------------+ | HOUR('10:35:27') | +------------------+ | 10 | +------------------+
Przykład 2 – dłużej niż 24 godziny
Jak wspomniano, jeśli wartość czasu jest używana do reprezentowania upływu czasu lub odstępu czasu między dwoma zdarzeniami, może mieć składnik godzinowy większy niż 24 godziny. Więc poniższy przykład jest całkowicie poprawny.
SELECT HOUR('310:35:27');
Wynik:
+-------------------+ | HOUR('310:35:27') | +-------------------+ | 310 | +-------------------+
Przykład 3 – Wartości ujemne
Wartości ujemne są również całkowicie ważne dla czasu typ danych. Pamiętaj jednak, że HOUR()
funkcja zwróci ją jako wartość dodatnią:
SELECT HOUR('-310:35:27');
Wynik:
+--------------------+ | HOUR('-310:35:27') | +--------------------+ | 310 | +--------------------+
Jeśli jest to problem i potrzebujesz wartości ujemnych zwracanych jako wartości ujemne, EXTRACT()
funkcja może być tym, czego szukasz:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Wynik:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+