簡體   English   中英

如何選擇所有需要時間戳記10分鍾的記錄?

[英]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()

另請參見: MySQL選擇從現在到10分鍾前的時間戳列所在的行

因此,如果有人必須通過查看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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM