W MariaDB, TIME()
to wbudowana funkcja daty i czasu, która wyodrębnia część czasu z podanego wyrażenia czasu lub daty i godziny i zwraca ją jako ciąg.
Przyjmuje jeden argument, którym jest czas lub data-godzina, dla której chcesz wyodrębnić czas.
Składnia
Składnia wygląda tak:
TIME(expr)
Gdzie expr
to wyrażenie czasu lub daty i godziny, dla którego należy wyodrębnić czas.
Przykład
Oto przykład do zademonstrowania:
SELECT TIME('2030-02-01 10:30:45');
Wynik:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Wartości czasu
Oto przykład, który wyodrębnia czas z wartości czasu:
SELECT TIME('10:30:45');
Wynik:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Mikrosekundy
Oto przykład obejmujący mikrosekundy:
SELECT TIME('2030-02-01 10:30:45.123456');
Wynik:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
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 TIME('578:30:45');
Wynik:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Czasy negatywne
Czasy ujemne są ważne:
Przykład
SELECT TIME('-578:30:45');
Wynik:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Godziny poza zakresem
Wartości czasu poza zakresem '-838:59:59.999999'
do '838:59:59.999999'
są ograniczone do odpowiedniej granicy i zawierają ostrzeżenie.
Przykład:
SELECT TIME('978:30:45');
Wynik (przy użyciu wyjścia pionowego):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Sprawdźmy ostrzeżenie:
SHOW WARNINGS;
Wynik (przy użyciu wyjścia pionowego):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Aktualna data
Możemy przekazać NOW()
jako argument datetime, aby użyć aktualnego czasu:
SELECT
NOW(),
TIME(NOW());
Wynik:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu TIME()
zwraca null
z ostrzeżeniem:
SELECT TIME('Ten Thirty AM');
Wynik:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Sprawdź ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Brakujący argument
Wywołanie TIME()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT TIME();
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 TIME('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