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

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

В MariaDB, TIMEDIFF() е вградена функция за дата и час, която връща разликата между две стойности за време или стойности за дата и час, изразени като стойност за време.

Той е подобен на DATEDIFF() функция, с изключение на DATEDIFF() Връщаната стойност на 's се изразява в дни.

TIMEDIFF() приема два аргумента, като и двата са изрази за време или дата и час. След това изважда втория път от първия.

Синтаксис

Синтаксисът е така:

TIMEDIFF(expr1,expr2) 

След това връща expr1 - expr2 .

Пример

Ето един пример:

SELECT TIMEDIFF('10:30:17', '1:10:10'); 

Резултат:

+--------------------------------+| TIMEDIFF('10:30:17', '1:10:10') |+------------------------------ ---+| 09:20:07 |+--------------------------------+

Ето го отново, но с разменени стойности за време:

SELECT TIMEDIFF('1:10:10', '10:30:17'); 

Резултат:

+--------------------------------+| TIMEDIFF('1:10:10', '10:30:17') |+------------------------------ ---+| -09:20:07 |+--------------------------------+

Стойности за дата и час

Ето пример, който използва стойности за дата и час:

SELECT TIMEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); 

Резултат:

+------------------------------------------------------- ----------+| TIMEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |+------------------- ------------------------------------+| 96:00:01 |+--------------------------------------------------- ------------+

Смесени типове стойности

Докато TIMEDIFF() работи както върху стойности за време, така и за дата и час, и двата аргумента трябва да са от един и същи тип. Смесването на типове води до null .

Пример:

SELECT TIMEDIFF('2030-01-25 00:00:00', '23:59:59'); 

Резултат:

+----------------------------------------------------+ | TIMEDIFF('2030-01-25 00:00:00', '23:59:59') |+------------------------- --------------------+| NULL |+------------------------------------------+ 

Извън обхват

Диапазонът за стойности на времето е '-838:59:59.999999' до '838:59:59.999999' . Ако резултатът е извън този диапазон, върнатата стойност е горната граница на съответния диапазон и се връща предупреждение.

Пример:

SELECT TIMEDIFF('2040-01-25 00:00:00', '2030-01-25 23:59:59'); 

Резултат:

+------------------------------------------------------- ----------+| TIMEDIFF('2040-01-25 00:00:00', '2030-01-25 23:59:59') |+------------------- ------------------------------------+| 838:59:59 |+--------------------------------------------------- ------------+1 ред в комплект, 1 предупреждение (0,003 сек.)

Нека да разгледаме предупреждението:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- ------------------+| Ниво | Код | Съобщение |+--------+------+------------------------------ -----------------+| Предупреждение | 1292 | Съкратена неправилна стойност на времето:'87624:00:01' |+---------+------+------------------- ----------------------------+

Текуща дата

Тук предаваме NOW() като втори аргумент:

SELECT 
    NOW(),
    TIMEDIFF('2021-05-27 10:00:00', NOW()); 

Резултат:

+---------------------+----------------------- ----------------+| СЕГА() | TIMEDIFF('2021-05-27 10:00:00', СЕГА()) |+---------------------+------- ---------------------------------+| 27.05.2021 14:29:38 | -04:29:38 |+---------------------+------------------- --------------------+

Невалидни аргументи

Когато се подадат невалидни аргументи, TIMEEDIFF() връща null :

SELECT TIMEDIFF('Homer', 'Simpson'); 

Резултат:

+------------------------------+| TIMEDIFF('Омир', 'Симпсън') |+------------------------------+| NULL |+------------------------------+

Липсващ аргумент

Извикване на TIMEDIFF() грешен брой аргументи или без предаване на аргументи води до грешка:

SELECT TIMEDIFF(); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „TIMEDIFF“

И:

SELECT TIMEDIFF('2030-05-21'); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „TIMEDIFF“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи MINUTE() в MariaDB

  2. AWS RDS:„SQLSTATE[22001] – Данните са твърде дълги за колона“ с помощта на MariaDB 10.2

  3. Как работи NOT RLIKE в MariaDB

  4. Подготовка на MySQL или MariaDB сървър за производство - част втора

  5. MaxScale Basic Management Използвайки MaxCtrl за MariaDB Cluster