[英]How to select all records that are 10 minutes to timestamp?
我在名為assg_real_timestamp
的表order_onsite_interpreter列中有時間戳。
我需要獲取assg_real_timestamp之前10分鍾的所有行。
邏輯是這樣的:我得到會話開始前10分鍾的所有行(會話開始,如assg_real_timestamp所示),然后在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
這是如何獲取具有過去10分鍾內設置的值的assg_real_timestamp
所有行。
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()
因此,如果有人必須通過查看GMT中的列時間戳來從數據庫中檢索所有行,則時間戳距now()不到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時區的地方。 這是將我的值同步到GMT的問題,我可以將它們與timestamp和now()比較。 像這樣工作:會話從02:03開始,這意味着在02:03-00:05 = 01:58每分鍾觸發的cron作業應從order_onsite_interpreter表中檢索行。 檢索該行后,我隨后向用戶的應用發送推送通知,並顯示消息“您的預定會話即將在5分鍾內開始,請登錄該應用”。 並將push_notification_sent = 1設置為使用戶不再在cron作業的查詢找到的五分鍾范圍內收到消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.