[英]How to write query in Ruby to check certain time object is less than 1 hour or 3 hour
我在 ruby 中有一個Trip model,它有start_at列,如果start_at少於 1 小時或 3 小時,我需要得到Trip object(只有當start_at小於 1 小時或小於 3 小時時,我應該得到 Trip object 不小於 2 小時,小於 4 小時, ..... ETC)。
注意:我有每 15 分鍾運行一次的Cron作業,以獲取行程object,如上所述。
示例:假設我有一個 start_at = 9:00 am 並且當前時間是 10:00 am 的行程,我應該得到該行程 object。同樣持續 3 小時(start_at = 9:00 am,當前時間是 12:00 am )
^^ 除了以上兩種情況我不應該得到行程 object,只需要不到 1 小時或 3 小時
這是我試過的
Trip.where("start_at < ? ", 1.hour.ago)
但上面的查詢返回行程 object 即使 start_at < 2 小時前,4 小時前,.....等等等等
我是 Ruby 的新手,我們將不勝感激。 謝謝!
Trip.where(start_at: 2.hours.ago..1.hour.ago).or(Trip.where(start_at: 4.hours.ago..3.hour.ago))
您可以使用或查詢,或使用數組值:
Trip.where(start_at: [2.hours.ago..1.hour.ago, 4.hours.ago..3.hour.ago])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.