簡體   English   中英

Rails模型-檢查DateTime對象是否在一天之內

[英]Rails model - check if a DateTime object is within a day

我有一個模型ExchangeRates具有類型DateTime的字段time 我想搜索當天的匯率。 我以以下方式嘗試:

  per = ExchangeRates.find_by(time: er.time.beginning_of_day..er.time.end_of_day)

但是,這不會在同一天返回ExchangeRate對象。 我該如何糾正?

您可能會得到更好的服務與嘗試這個where如下:

per = ExchangeRates.where("time > ? AND time < ?", er.time.beginning_of_day, er.time.end_of_day)

這會將您的請求直接轉換為SQL。 盡管它比我喜歡的ActiveRecord少了很多,但我發現沒有簡單的方法來搜索范圍的好方法。

如果您想要更干凈的東西,可以考慮使用猴子補丁AR支持range操作,該操作通過傳入的哈希在幕后有效地執行此類操作。

這應該為你工作

per = ExchangeRates.where(time: er.time.beginning_of_day..er.time.end_of_day).first

但是,當我經常在模型上使用這種類型的查詢時,我更喜歡復制數據,也使用日期列。

可以說,如果我有created_at列,那么我還要添加一個created_on列。 一個具有日期時間類型,一個字母具有日期類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM