W MariaDB, TIME_TO_SEC()
jest wbudowaną funkcją daty i czasu, która zwraca swój argument czasu, przekonwertowany na sekundy.
Składnia
Składnia wygląda tak:
TIME_TO_SEC(time)
Gdzie time
to wartość czasu do przeliczenia na sekundy.
Przykład
Oto przykład:
SELECT TIME_TO_SEC('00:01:00');
Wynik:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Oto kilka innych wartości czasu:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46');
Wynik:
+-------------------------+-------------------------+ | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') | +-------------------------+-------------------------+ | 3600 | 56266 | +-------------------------+-------------------------+
Mikrosekundy
TIME_TO_SEC()
obsługuje mikrosekundy:
SELECT TIME_TO_SEC('00:01:00.123456');
Wynik:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.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_TO_SEC('838:59:59');
Wynik:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Ujemne wartości czasu
Oto przykład z ujemną wartością czasu:
SELECT TIME_TO_SEC('-820:38:15');
Wynik:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Czasy poza zakresem
Jednak podanie wartości czasu poza zakresem zwróci sekundy dla górnej granicy tego zakresu wraz z ostrzeżeniem:
SELECT TIME_TO_SEC('920:38:15');
Wynik:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Sprawdźmy ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Nieprawidłowy argument
Po przekazaniu nieprawidłowych argumentów TIME_TO_SEC()
zwraca null
z ostrzeżeniem:
SELECT TIME_TO_SEC('Homer');
Wynik:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Sprawdź ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Brakujący argument
Wywołanie TIME_TO_SEC()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT TIME_TO_SEC();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
I kolejny przykład:
SELECT TIME_TO_SEC('10:09:10', 2);
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'