W MariaDB, HOUR()
to wbudowana funkcja daty i czasu, która zwraca godzinę z podanego wyrażenia czasu.
Przyjmuje jeden argument, czyli czas, z którego chcesz wydobyć godzinę.
W przypadku wartości czasu dnia zwraca godzinę jako liczbę z zakresu 0
do 23
. Jednak zakres TIME
wartości mogą być znacznie większe, a zatem zwracana wartość może być znacznie wyższa niż 23
.
Zwracana wartość jest zawsze dodatnia, nawet jeśli podano ujemny czas.
Składnia
Składnia wygląda tak:
HOUR(time)
Gdzie time
jest wyrażeniem czasu, z którego można uzyskać godzinę.
Przykład
Oto przykład:
SELECT HOUR('10:30:45');
Wynik:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT HOUR('2030-02-01 10:30:45');
Wynik:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Większe godziny
TIME
wartości mogą należeć do zakresu '-838:59:59.999999'
do '838:59:59.999999'
.
Dlatego część godzinowa może być znacznie wyższa niż 23
:
SELECT HOUR('578:30:45');
Wynik:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Czasy negatywne
Czasy ujemne zwracają wynik dodatni.
Przykład
SELECT HOUR('-578:30:45');
Wynik:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Godziny poza zakresem
Wartości czasu poza zakresem '-838:59:59.999999'
do '838:59:59.999999'
zwróć 838
.
Przykład:
SELECT HOUR('978:30:45');
Wynik (przy użyciu wyjścia pionowego):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Aktualna data
Możemy przekazać NOW()
jako argument datetime, aby użyć aktualnego czasu:
SELECT
NOW(),
HOUR(NOW());
Wynik:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu HOUR()
zwraca null
:
SELECT HOUR('Ten Thirty AM');
Wynik:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Brakujący argument
Wywołanie HOUR()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT HOUR();
Wynik:
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
I kolejny przykład:
SELECT HOUR('10:30:45', '06:30:45');
Wynik:
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