В MariaDB, SEC_TO_TIME()
е вградена функция за дата и час, която връща стойност за време въз основа на броя секунди, предоставени като аргументи.
Синтаксис
Синтаксисът е така:
SEC_TO_TIME(seconds)
Пример
Ето един пример:
SELECT SEC_TO_TIME(1);
Резултат:
+----------------+| SEC_TO_TIME(1) |+----------------+| 00:00:01 |+----------------+
Ето още един:
SELECT SEC_TO_TIME(18520);
Резултат:
+-------------------+| SEC_TO_TIME(18520) |+-------------------+| 05:08:40 |+-------------------+
Секунди извън обхвата
Обхватът на резултата е ограничен до този на типа данни за време. Предупреждение се появява, ако аргументът съответства на стойност извън този диапазон. Диапазонът за стойностите на времето в MariaDB е '-838:59:59.999999'
до '838:59:59.999999'
.
Както и да е, ето пример за време със стойности, които са в горния край на техния приет диапазон:
SELECT SEC_TO_TIME(3020399);
Резултат:
+---------------------+| SEC_TO_TIME(3020399) |+---------------------+| 838:59:59 |+---------------------+
И ето един, който излиза извън обхвата:
SELECT SEC_TO_TIME(3020400);
Резултат:
+---------------------+| SEC_TO_TIME(3020400) |+---------------------+| 838:59:59 |+---------------------+1 ред в комплект, 1 предупреждение (0,000 сек)
Ето предупреждението:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- -----------------+| Ниво | Код | Съобщение |+---------+------+------------------------------ ----------------+| Предупреждение | 1292 | Съкратена неправилна стойност на секундите:'3020400' |+---------+------+----------------------- -----------------------+
Микросекунди
Можем да се доближим още по-близо до горния диапазон, като включим микросекунди:
SELECT SEC_TO_TIME(3020399.999999);
Резултат:
+----------------------------+| SEC_TO_TIME(3020399.999999) |+----------------------------+| 838:59:59.999999 |+----------------------------+
Отрицателни аргументи
Предоставянето на отрицателна сума води до отрицателна времева стойност.
Пример:
SELECT SEC_TO_TIME(-3020399);
Резултат:
<пред>+-----------------------+| SEC_TO_TIME(-3020399) |+-----------------------+| -838:59:59 |+-----------------------+Липсващ аргумент
Извикване на SEC_TO_TIME()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT SEC_TO_TIME();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на функцията „SEC_TO_TIME“
И още един пример:
SELECT SEC_TO_TIME( 123, 456 );
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на функцията „SEC_TO_TIME“
Намерете време
Вижте също MAKETIME()
за конструиране на времева стойност от неговите часове, минути и секунди.