我有一個腳本,每30分鐘運行一次查詢,查詢前30分鐘內的新記錄。爲了說明腳本運行的任何類型的延遲,我想看看前面的0:00-30:00分鐘和30:01-59:59大塊。查詢0-30分鐘羣組中的數據
例如,如果我的腳本在上午11點運行,我希望它發現有一個
entered_date > 10:30 am AND < 11:00 am
而當它運行在上午11:30,我期望新行從'entered_date> 11:00 am和< 11:30 am新行。
做這樣的事情只得到最後的跑步30分鐘:此
SELECT
fa.entered_date,
fa.text
FROM
form_answers fa
WHERE
AND fa.value = 1
AND fa.entered_date >= DATEADD(mi, -30, GETDATE())
所以,如果我的劇本在某種程度上由幾秒鐘的延遲,並且在11:00:02跑了,我可能會錯過一個記錄有一個entered_date
的10:30:01。
編輯:
這是結束了,我的工作:
fa.entered_date BETWEEN
DATEADD(mi,-30,CONVERT(VARCHAR(19),DATEADD(mi, DATEDIFF(mi, 0, GETDATE())/30*30, 0)))
AND
DATEADD(mi, DATEDIFF(mi, 0, GETDATE())/30*30, 0)
我同意你和Gordon關於不同跟蹤方法的建議。但是,我無法將數據插入到此特定數據庫中,只能查詢數據。它只是讓我使用時鐘方法。你能提供一個將「當前」時間四捨五入到最近的例子,然後回顧30分鐘的時間嗎? – etm124 2014-10-28 18:08:17
隨着你的建議,我認爲這樣的事情可以工作:http://pastebin.com/SBeZTwKw – etm124 2014-10-28 18:19:10