Как выбрать все записи, которые составляют 10 минут до отметки времени?

php mysql sql

156 просмотра

2 ответа

49 Репутация автора

У меня есть метки времени в столбце таблицы order_onsite_interpreter assg_real_timestamp.

Мне нужно получить все строки, где assg_real_timestamp за 10 минут до assg_real_timestamp.

Логика такова: я получаю все строки за 10 минут до начала сеанса (сеанс начинается, как показано с помощью assg_real_timestamp), а затем отправляю push-уведомление пользователю в приложении ios. Так что, если до начала сеанса 10 минут или меньше, мне нужно выбрать строки.

Это пример, где я остановлюсь. Я подозреваю, что сделал неправильный запрос.

SELECT * 
WHERE scheduling_type IN ('get_call', 'conference_call') 
AND push_notification_sent = 0 AND is_phone = 1 
AND assg_real_timestamp <= now() - INTERVAL 10 MINUTE
Автор: user3931314 Источник Размещён: 18.07.2016 01:52

Ответы (2)


1 плюс

633 Репутация автора

Это как получить все строки со assg_real_timestampзначением, установленным за последние 10 минут.

SELECT * FROM `<table_name>`
WHERE scheduling_type IN ('get_call', 'conference_call') 
AND push_notification_sent = 0 
AND is_phone = 1 
AND assg_real_timestamp BETWEEN DATE_SUB(NOW() , INTERVAL 10 MINUTE) AND NOW()

Mysql: DATE_SUB ()

См. Также: MySQL. Выберите строки, в которых столбец отметки времени находится между 10 минутами назад

Автор: LeDoc Размещён: 18.07.2016 02:01

0 плюса

49 Репутация автора

Так что если кому-то нужно извлечь все строки из базы данных, посмотрев на метку времени столбцов, которая находится в GMT, где метка времени меньше 5 минут с этого момента ()

SELECT orderID, scheduling_type, frm_lang, to_lang, customer_id, amount, 
 onsite_con_phone, assg_frm_date, assg_frm_st, timezone FROM 
`order_onsite_interpreter` WHERE scheduling_type IN ('conference_call', 
'get_call') AND push_notification_sent =0 AND is_phone =1 AND 
DATE_SUB(CONVERT_TZ(DATE_FORMAT(FROM_UNIXTIME(assg_frm_timestamp), '%Y-%c-%d 
%T:%f'), '-7:00', '-0:00'),INTERVAL 5 MINUTE) BETWEEN CONVERT_TZ(DATE_SUB(NOW(),
INTERVAL 5 MINUTE), '-7:00', '-0:00') AND CONVERT_TZ(NOW(), '-7:00', '-0:00') 

-7: 00 - это место, где мне нужно преобразовать часовые пояса моего сервера в часовой пояс GMT. Это вопрос синхронизации моих значений по Гринвичу и их я могу сравнить метку времени и сейчас (). Это работает примерно так: сеанс начинается в 02:03, что означает, что в 02:03 - 00:05 = 01:58 задание cron, которое запускается каждую минуту, должно извлечь строки из таблицы order_onsite_interpreter. После получения строки я отправляю push-уведомление в приложение пользователя с сообщением «Ваш запланированный сеанс должен начаться через 5 минут, войдите в приложение». И установите push_notification_sent = 1, чтобы пользователь больше не получал сообщение в течение пяти минут, которые находит запрос из задания cron.

Автор: user3931314 Размещён: 31.07.2016 12:27
Вопросы из категории :
32x32