Последнее обновление
MINUTES_DIFF
Описание
Функция MINUTES_DIFF вычисляет разницу в минутах между двумя значениями даты и времени. Результат — количество минут, полученное при вычитании времени начала из времени окончания. Функция поддерживает типы DATE и DATETIME (в том числе с точностью до микросекунд).
Синтаксис
MINUTES_DIFF(`<date_or_time_expr1>`, `<date_or_time_expr2>`)
Параметры
| Параметр | Описание |
|---|---|
<date_or_time_expr1> | Время окончания типа DATE или DATETIME. Сведения о конкретных форматах даты и времени см. в разделах Преобразование даты и времени и Преобразование даты |
<date_or_time_expr2> | Время начала типа DATE или DATETIME. Сведения о конкретных форматах даты и времени см. в разделах Преобразование даты и времени и Преобразование даты |
Возвращаемое значение
Возвращает целое число типа INT, представляющее разницу в минутах между <date_or_time_expr1> и <date_or_time_expr2> (1 час = 60 минут).
- Если
<date_or_time_expr1>позже, чем<date_or_time_expr2>, возвращается положительное число. - Если
<date_or_time_expr1>раньше, чем<date_or_time_expr2>, возвращается отрицательное число. - При вычислении учитывается фактическая разница, включая секунды и микросекунды.
- Если входное значение имеет тип DATE (содержит только год, месяц и день), его временная часть по умолчанию равна 00:00:00.
- Если во входном значении даты и времени дробная часть, секунды или микросекунды отличны от нуля, они учитываются при вычислении.
- Если любой из параметров равен NULL, возвращается NULL.
Примеры
-- Minute difference when end time is greater than start time
SELECT MINUTES_DIFF('2020-12-25 22:00:00', '2020-12-25 21:00:00') AS result;
+--------+
| result |
+--------+
| 60 |
+--------+
-- Includes scale, calculation does not ignore it
SELECT MINUTES_DIFF('2020-12-25 21:00:00.999', '2020-12-25 22:00:00.923');
+--------------------------------------------------------------------+
| MINUTES_DIFF('2020-12-25 21:00:00.999', '2020-12-25 22:00:00.923') |
+--------------------------------------------------------------------+
| -59 |
+--------------------------------------------------------------------+
-- End time is earlier than start time, returns negative number
SELECT MINUTES_DIFF('2023-07-13 21:50:00', '2023-07-13 22:00:00') AS result;
+--------+
| result |
+--------+
| -10 |
+--------+
-- Input is of DATE type (default time 00:00:00)
SELECT MINUTES_DIFF('2023-07-14', '2023-07-13') AS result;
+--------+
| result |
+--------+
| 1440 |
+--------+
-- Two times have different seconds, seconds are also calculated
SELECT MINUTES_DIFF('2023-07-13 22:30:59', '2023-07-13 22:31:01') AS result;
+--------+
| result |
+--------+
| 0 |
+--------+
-- Any parameter is NULL, returns NULL
SELECT MINUTES_DIFF(NULL, '2023-07-13 22:00:00'), MINUTES_DIFF('2023-07-13 22:00:00', NULL) AS result;
+-------------------------------------------+--------+
| MINUTES_DIFF(NULL, '2023-07-13 22:00:00') | result |
+-------------------------------------------+--------+
| NULL | NULL |
+-------------------------------------------+--------+