В MariaDB, TIME_FORMAT() е вградена функция за дата и час, която форматира стойност за време според дадения форматен низ.
Работи подобно на DATE_FORMAT() функция, с изключение на това, че форматният низ може да съдържа само спецификатори на формат за часове, минути и секунди.
Изисква два аргумента; времето и низа за формат.
Синтаксис
Синтаксисът е така:
TIME_FORMAT(time,format)
Където time е стойността на времето и format е форматният низ. Вижте MariaDB Format Strings за списък с приемливи спецификатори на формат. Както споменахме, приемат се само спецификаторите на формат за часове, минути и секунди. Всички други стойности връщат null .
Пример
Ето един пример:
SELECT TIME_FORMAT('10:30:45', '%H %i %S'); Резултат:
+-------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+---------------------------- --------+| 10 30 45 |+---------------------------------------+ Ето го отново, но този път предоставяме по-сложен форматен низ:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Резултат:
+----------------------------------------+| Резултат |+----------------------------------------+| 10 часа, 30 минути и 45 секунди |+----------------------------------------------+
По-голямо работно време
TIME стойностите могат да бъдат в диапазона '-838:59:59.999999' до '838:59:59.999999' .
Следователно часовата част може да бъде много по-висока от 23 :
SELECT TIME_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Резултат:
+---------------------------------------+| Резултат |+---------------------------------------+| 810 часа, 30 минути и 45 секунди |+--------------------------------------- +
Отрицателни времеви стойности
Ето пример с отрицателна времева стойност:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Резултат:
+---------------------------------------+| Резултат |+---------------------------------------+| -810 часа, 30 минути и 45 секунди |+------------------------------------- --+
Времена извън обхвата
Предоставянето на времева стойност извън диапазона обаче ще върне горната граница на този диапазон, заедно с предупреждение:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result; Резултат:
+---------------------------------------+| Резултат |+---------------------------------------+| 838 часа, 59 минути и 59 секунди |+--------------------------------------- +1 ред в комплект, 1 предупреждение (0,003 сек.)
Нека проверим предупреждението:
SHOW WARNINGS; Резултат:
+--------+------+---------------------------- ----------------+| Ниво | Код | Съобщение |+--------+------+------------------------------ ---------------+| Предупреждение | 1292 | Съкратена неправилна стойност на времето:'910:30:45' |+---------+------+------------------- ----------------------------------+
Невалидни аргументи
Когато се подадат невалидни аргументи, TIME_FORMAT() връща null с предупреждение:
SELECT TIME_FORMAT('Homer', 'Simpson'); Резултат:
+--------------------------------+| TIME_FORMAT('Омир', 'Симпсън') |+--------------------------------+| NULL |+--------------------------------+1 ред в комплект, 1 предупреждение (0,009 сек)предварително>
Проверете предупреждението:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- --+| Ниво | Код | Съобщение |+--------+------+------------------------------ -+| Предупреждение | 1292 | Неправилна стойност на времето:'Homer' |+---------+------+------------------------ -------+
Невалиден форматен низ
Форматният низ може да съдържа само спецификатори на формат за часове, минути и секунди. Всички други спецификатори на формат водят до null се връща:
SELECT TIME_FORMAT('10:30:45', '%M %W');
Резултат:
+---------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------ ---+| NULL |+---------------------------------+ Липсващ аргумент
Извикване на TIME_FORMAT() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT TIME_FORMAT();
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „TIME_FORMAT“
И още един пример:
SELECT TIME_FORMAT('10:09:10');
Резултат:
ГРЕШКА 1582 (42000):Неправилен брой параметри в извикването на естествената функция „TIME_FORMAT“