it-swarm.com.ru

Расчет разницы во времени между 2 датами в минутах

У меня есть поле времени Timestamp в моей базе данных MySQL, которое сопоставлено с типом DATE в моем bean-компоненте. Теперь я хочу запрос, по которому я могу получить все записи в базе данных, для которых разница между текущей отметкой времени и отметкой, хранящейся в базе данных, составляет> 20 минут.

Как мне это сделать?

То, что я хочу, это:

SELECT * FROM MyTab T WHERE T.runTime - now > 20 minutes

Существуют ли функции MySQL для этого или какой-либо способ сделать это в SQL?

56
Akshay

Я думаю, что вы можете использовать TIMESTAMPDIFF (unit, datetime_expr1, datetime_expr2) что-то вроде

select * from MyTab T where
TIMESTAMPDIFF(MINUTE,T.runTime,NOW()) > 20
101
Nicola Peluchetti
ROUND(time_to_sec((TIMEDIFF(NOW(), "2015-06-10 20:15:00"))) / 60);
20
Mouloud

Попробуй это:

select * from MyTab T where date_add(T.runTime, INTERVAL 20 MINUTE) < NOW()

ПРИМЕЧАНИЕ: это должно работать, если вы используете формат MySQL DateTime. Если вы используете Unix Timestamp (целое число), то было бы еще проще:

select * from MyTab T where UNIX_TIMESTAMP() - T.runTime > 20*60

Функция UNIX_TIMESTAMP () возвращает текущую метку времени Unix.

6
itsmeee

Я использую приведенный ниже код на сегодня и дату базы данных.

(TIMESTAMPDIFF(MINUTE,NOW(),EndDate))%60 as Minutes

Здесь мы можем использоватьЧАС(для часов -% 24),ДЕНЬ(для дней - нет необходимости в%) вместоМИНУТЫ, если нам нужно.

0
Deepak Dholiyan