1

我有一个带有过期日期时间字段的模型,我一直在将其与 Time.now 进行比较。

现在我的客户希望模型在视图中保留到到期日的午夜。

所以,我认为我需要做的是能够在该字段上调用 ​​end_of_day 方法作为查找的一部分。

像……</p>

Model.where('expiration.end_of_day < ?', Time.now)

这当然是行不通的,也许我只是把这一切都弄错了。

这是在使用 Postgres 的 Rails 3.2 上(我认为是 9.1。它在 Heroku 上)。

4

2 回答 2

2

我假设您的expiration列是时间戳而不是日期,这就是问题的根源。我认为以下内容应该适合您:

Model.where('expiration > ?', Time.now.beginning_of_day)  # All records which expire today or later
于 2012-06-01T14:15:46.870 回答
0

在纯 postgresql 中会是这样的:

expiration < current_date + 1

select current_date;
    date    
------------
 2012-06-01
(1 row)

select '2012-06-01 23:59:59' < current_date + 1;
 ?column? 
----------
 t
(1 row)
于 2012-06-01T13:37:28.713 回答