我在名为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"
}
答案 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作业查询的五分钟范围内不再收到消息。