mysql DATETIME вычисления

141
29 июня 2021, 00:20

Делаю запрос:

SELECT 
(NOW() + INTERVAL 1 MINUTE)-NOW(),
(NOW() + INTERVAL 2 MINUTE)-NOW(),
(NOW() + INTERVAL 3 MINUTE)-NOW(),
(NOW() + INTERVAL 4 MINUTE)-NOW(),
(NOW() + INTERVAL 5 MINUTE)-NOW(),
(NOW() + INTERVAL 6 MINUTE)-NOW(),
(NOW() + INTERVAL 7 MINUTE)-NOW(),
(NOW() + INTERVAL 8 MINUTE)-NOW(),
(NOW() + INTERVAL 9 MINUTE)-NOW(),
(NOW() + INTERVAL 10 MINUTE)-NOW(),
(NOW() + INTERVAL 11 MINUTE)-NOW(),
(NOW() + INTERVAL 12 MINUTE)-NOW(),
(NOW() + INTERVAL 13 MINUTE)-NOW(),
(NOW() + INTERVAL 14 MINUTE)-NOW(),
(NOW() + INTERVAL 15 MINUTE)-NOW(),
(NOW() + INTERVAL 16 MINUTE)-NOW(),
(NOW() + INTERVAL 17 MINUTE)-NOW()

Выводит

Собственно, что это за формат и как это преобразовать в секунды или более адекватный вид?

Answer 1

Оператора вычитания между двумя timestamp в mysql не существует. Вместо этого используется приведение timestamp к числу и далее числовой оператор вычитания.

timestamp приводится к числу как форматирование YYYYMMDDHHIISS. То есть timestamp 2019-08-29 16:21:30 приводится к числу 20190829162130. И, как следствие, два timestamp с разницей в минуту после приведения к числу получают численную разницу в 100.

Для обработки типов данных дат mysql предлагает набор штатных функций. Например, для получения количества секунд между двумя датами можно воспользоваться функцией TIMESTAMPDIFF:

select TIMESTAMPDIFF(SECOND, NOW(), (NOW() + INTERVAL 2 MINUTE));
Answer 2

Чтобы узнать сколько времени прошло с определенной даты используется функция TIMESTAMPDIFF

TIMESTAMPDIFF(unit, datetime_expr_from, datetime_expr_to)

т.е. вам нужно вызвать

TIMESTAMPDIFF(MINUTE, datetime_expr, NOW())

получите, сколько прошло минут от datetime_expr до текущего времени

READ ALSO
Подскажите, что значит такая запись в PHP?

Подскажите, что значит такая запись в PHP?

Подскажите, что значит такая запись в PHP?

92
guzzle не отправляются асинхронные запросы

guzzle не отправляются асинхронные запросы

Не отправляется асинхронный запросСинхронные отправляются

121
Выбор подхода для написания системы

Выбор подхода для написания системы

Есть ERP система, парусКрутится на oracle базе

99