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