我正在使用DATEDIFF確保某個動作不會每分鐘發生一次以上。DATEDIFF檢查一分鐘實際是一分鐘到兩分鐘
SELECT COUNT(*)
FROM FOOD_ACTION
WHERE
DATEDIFF(MINUTE,INSERT_DT,GETDATE()) <= 1
INSERT_DT
是具有相同格式的日期列GETDATE()
返回
如果有的話從該查詢返回的動作是不允許發生的。
事情是,它只有種作品。我已經把它的範圍從一分鐘和10秒一直到幾乎兩分鐘,然後再讓它發生。似乎沒有任何一致性,如果它接近一兩分鐘,並且我已經確認GETDATE()
與我的應用程序在設置INSERT_DT
列時的確切時間相同。
不一致和錯誤的時間表是怎麼回事?
採取差和使用'<60'。簡單的解釋是時間的秒部分被'datediff()'忽略。 – shawnt00
原因是01:00:01距離01:02:00 119秒,其中的值最終會變成2 – Cato
想起了我曾經決定過的一個原則 - 通常最好是在開始時間添加時間並等到時間已經過去了 – Cato