如何选择10分钟到时间戳的所有记录?

时间:2016-07-18 13:52:58

标签: php mysql sql

我在名为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 的表order_onsite_interpreter列中有时间戳。

我需要获取assg_real_timestamp在assg_real_timestamp之前10分钟的所有行。

逻辑是:我得到会话开始前10分钟的所有行(会话开始,如assg_real_timestamp所示),然后我在ios应用程序上向用户发送推送通知。 因此,如果在会话开始前10分钟或更短时间,我必须获取行。

这是一个例子,我停下来。我怀疑我做错了查询。

{
   "_id" : "54c955492b7c8eb21818bd09"
   "firstName": "my name"
}

2 个答案:

答案 0 :(得分:1)

这是如何使用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 Select rows where timestamp column between now and 10 minutes ago

答案 1 :(得分:0)

因此,如果有人必须从数据库中检索所有行,则通过查看GMT中的列时间戳,其中时间戳距离现在的5分钟()

{{1}}

-7:00是我需要从服务器的时区转换为GMT时区的地方。这是一个将我的值同步到GMT的问题,我可以比较时间戳和now()。这样工作,像这样: 会话从02:03开始,这意味着在02:03 - 00:05 = 01:58,每分钟触发的cron作业应该从order_onsite_interpreter表中检索行。检索完行后,我会向用户的应用发送推送通知,并显示消息“您的预定会话将在5分钟内开始,请登录该应用”。并设置push_notification_sent = 1,以便用户在cron作业查询的五分钟范围内不再收到消息。