我在 Active Record 文档中看到,您可以使用大于/小于比较来查询日期。但是,如果您想选择 where date = Date.today 或者我必须查询 date 大于昨天且小于明天的情况该怎么办?
正如您所看到的,我在以下查询中正是这样做的,并查询 Date = Today 返回一个空集
1.9.3p286 :096 > Subscription.where("created_at = ?", Date.today).count
(0.5ms) SELECT COUNT(*) FROM `subscriptions` WHERE (created_at = '2013-01-18')
=> 0
vs.
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
这是查询今天日期的正确方法还是我错过了什么?
我认为这是这个问题的 DUP:
如何从日期时间列中选择日期? https://stackoverflow.com/questions/1754411/how-to-select-date-from-datetime-column
Subscription.where("DATE(created_at) = ?", Date.today).count
我很确定这适用于 MySQL 和 PostgreSQL,但我不确定它是否是 SQL 标准。
维基百科似乎认为TO_DATE
将是标准:http://en.wikipedia.org/wiki/SQL#Date_and_time http://en.wikipedia.org/wiki/SQL#Date_and_time
但这在 PostgreSQL 中对我来说不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)