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

TIMEDIFF() Примери – MySQL

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

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

Синтаксис

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

TIMEDIFF(expr1,expr2)

Където expr1 и expr2 са двете стойности за сравнение. Връщаната стойност е expr2 изваден от expr1 .

Основен пример

Ето пример за демонстрация.

SELECT TIMEDIFF('11:35:25', '10:35:25');

Резултат:

+----------------------------------+
| TIMEDIFF('11:35:25', '10:35:25') |
+----------------------------------+
| 01:00:00                         |
+----------------------------------+

Изминало време

Стойността на времето може да представлява изминало време, така че не е ограничено до по-малко от 24 часа.

SELECT TIMEDIFF('500:35:25', '10:35:25');

Резултат:

+-----------------------------------+
| TIMEDIFF('500:35:25', '10:35:25') |
+-----------------------------------+
| 490:00:00                         |
+-----------------------------------+

Отрицателна разлика във времето

Ако втората стойност е по-голяма от първата, ще получите отрицателна стойност за разликата във времето. Това е напълно валидно.

SELECT TIMEDIFF('10:35:25', '500:35:25');

Резултат:

+-----------------------------------+
| TIMEDIFF('10:35:25', '500:35:25') |
+-----------------------------------+
| -490:00:00                        |
+-----------------------------------+

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

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

SELECT TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25');

Резултат:

+--------------------------------------------------------+
| TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') |
+--------------------------------------------------------+
| 744:00:00                                              |
+--------------------------------------------------------+

Имайте предвид, че и двата аргумента трябва да са от един и същи тип. Така че не можете да имате стойност за време за първата и стойност за дата и час за втората (и обратно).

Също така имайте предвид, че типът данни за времето може да бъде само в диапазона -838:59:59 до 838:59:59 . Следователно следното не работи:

SELECT TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25');

Резултат:

+--------------------------------------------------------+
| TIMEDIFF('2000-01-01 10:35:25', '2021-01-01 10:35:25') |
+--------------------------------------------------------+
| -838:59:59                                             |
+--------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

В този случай получаваме неправилен резултат и предупреждение.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да видя на живо MySQL заявки?

  2. Как мога да получа достъп до командния ред на MySQL с XAMPP за Windows?

  3. 'IF' в израза 'SELECT' - изберете изходна стойност въз основа на стойностите на колоните

  4. Как да конвертирам всички таблици от MyISAM в InnoDB?

  5. Научете MySQL / MariaDB за начинаещи – част 1