MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи TIME_FORMAT() в MariaDB

В 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“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преглед за 2018 г.:7 етапа на MariaDB, които може да сте пропуснали

  2. MariaDB DAY() Обяснено

  3. MariaDB числови функции (пълен списък)

  4. Как работи TRIM_ORACLE() в MariaDB

  5. MariaDB CURRENT_TIMESTAMP() Обяснено