В MariaDB, TIME_TO_SEC()
е вградена функция за дата и час, която връща своя аргумент за време, преобразуван в секунди.
Синтаксис
Синтаксисът е така:
TIME_TO_SEC(time)
Където time
е стойността на времето, която трябва да се преобразува в секунди.
Пример
Ето един пример:
SELECT TIME_TO_SEC('00:01:00');
Резултат:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Ето го с няколко други времеви стойности:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46');
Резултат:
+-------------------------+-------------------------+ | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') | +-------------------------+-------------------------+ | 3600 | 56266 | +-------------------------+-------------------------+
Микросекунди
TIME_TO_SEC()
поддържа микросекунди:
SELECT TIME_TO_SEC('00:01:00.123456');
Резултат:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.123456 | +--------------------------------+
По-голямо работно време
TIME
стойностите могат да бъдат в диапазона '-838:59:59.999999'
до '838:59:59.999999'
.
Следователно часовата част може да бъде много по-висока от 23
:
SELECT TIME_TO_SEC('838:59:59');
Резултат:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Отрицателни времеви стойности
Ето пример с отрицателна времева стойност:
SELECT TIME_TO_SEC('-820:38:15');
Резултат:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Времена извън обхвата
Предоставянето на времева стойност извън диапазона обаче ще върне секундите за горната граница на този диапазон, заедно с предупреждение:
SELECT TIME_TO_SEC('920:38:15');
Резултат:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Нека проверим предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Невалиден аргумент
Когато се подадат невалидни аргументи, TIME_TO_SEC()
връща null
с предупреждение:
SELECT TIME_TO_SEC('Homer');
Резултат:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Проверете предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Липсващ аргумент
Извикване на TIME_TO_SEC()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT TIME_TO_SEC();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
И още един пример:
SELECT TIME_TO_SEC('10:09:10', 2);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'