我有一個具有開始時間的日程模型,日期時間爲和持續時間以分鐘爲單位,整數爲。使用命名範圍
使用命名範圍是否有一種方法可以獲得有(start_time + duration) < current_time
的記錄?
我有一個具有開始時間的日程模型,日期時間爲和持續時間以分鐘爲單位,整數爲。使用命名範圍
使用命名範圍是否有一種方法可以獲得有(start_time + duration) < current_time
的記錄?
你可以實現你的要求與SQL水平日期操作功能,如mysql's DATE_ADD:
scope :not_over, where('DATE_ADD(start_time, INTERVAL duration MINUTE) > UTC_TIMESTAMP()')
但如果性能是一個考慮因素,你可能要預先計算的「END_TIME」列,並添加一個索引上它。
start_time採用日期時間格式,持續時間爲整數 – ssri 2011-03-29 06:49:56
哦,對不起,應該有一些數據庫特定的答案,讓我看看 – thatothermitch 2011-03-29 06:50:40
你應該使用'UTC_TIMESTAMP()'而不是'NOW()' – Zabba 2011-03-29 06:58:38
MYSQL條件需要像WHERE(ADDTIME(scheduled_start_time,duration_in_min)<'2011-03-29 06:55:02')。但是,如果持續時間是123即123分鐘,而不是將其作爲2小時和3分鐘......它將1分23秒添加到我的表中的scheduled_start_time – ssri 2011-03-29 07:03:29