之間減法選擇車型我有一個名爲「日程」一個MySQL表具有字段TIME_START和TIME_END的日期時間格式。通過他們的日期時間字段
我需要從Ruby on Rails上下文中獲取大於4小時的數據庫模型。例如:
Schedule.where("#{time_end} - #{time_start} > 4.hours")
我如何使用Active Record執行此操作?如果不可能,那麼我怎麼能用mySQL查詢來做到這一點?
之間減法選擇車型我有一個名爲「日程」一個MySQL表具有字段TIME_START和TIME_END的日期時間格式。通過他們的日期時間字段
我需要從Ruby on Rails上下文中獲取大於4小時的數據庫模型。例如:
Schedule.where("#{time_end} - #{time_start} > 4.hours")
我如何使用Active Record執行此操作?如果不可能,那麼我怎麼能用mySQL查詢來做到這一點?
只要你使用mysql這將工作。
Schedule.where("DATE_SUB(time_end, INTERVAL 4 HOUR) > time_start")
參考:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-add
,我不知道或者Rails(我相信這是不可能使用Rails),但它與SQL很容易可行:
Schedule.where("TIMESTAMPDIFF(HOUR, time_end, time_start) > 4")
的MySQL有日期之間的區別有兩個功能:
SELECT TIMEDIFF('2007-12-31 10:02:00','2007-12-30 12:01:01');
-- result: 22:00:59.
SELECT TIMESTAMPDIFF(SECOND,'2007-12-30 12:01:01','2007-12-31 10:02:00');
-- result: 79259 the difference in seconds with the time.
您可以使用類似:
Schedule.where("TIMESTAMPDIFF(time_end, time_start) > 240")
不知道是否可行,但你可以試試看。希望這可以幫助!
你可以使用MySQL的TIMEDIFF
功能:
Schedule.where("TIMEDIFF(time_end, time_start) > '04:00:00'")
我相信'間隔4 DAY'不是'> 4.hours'的完全等效。 – mudasobwa