我在Active Record的文档中看到,你可以使用大于/小于比较来查询日期。但是,如果您想选择日期等于今天的记录,是否必须查询日期大于昨天并且小于明天?
正如您在以下查询中所看到的,我正在执行类似的操作,并且查询日期等于今天返回了一个空集合。
1.9.3p286 :096 > Subscription.where("created_at = ?", Date.today).count
(0.5ms) SELECT COUNT(*) FROM `subscriptions` WHERE (created_at = '2013-01-18')
=> 0
对比。
1.9.3p286 :098 > Subscription.where("expiration_date < ? AND expiration_date > ?", Date.today + 1, Date.today - 1).count
(0.4ms) SELECT COUNT(*) FROM `subscriptions` WHERE (expiration_date < '2013-01-19' AND expiration_date > '2013-01-17')
=> 1
这是查询今天日期的正确方法吗?还是我漏掉了什么?