我正在尝试查询我的 Rails 数据库(Postgres)中的购买表,并且我想查询时间范围。
例如,我想知道所有日期的下午 2 点到下午 3 点之间进行了多少次购买。
有一个created_at
此表中的列,但我不知道如何在不搜索特定日期的情况下完成此操作。
我试过了:
Purchases.where("created_at BETWEEN ? and ?", Time.now - 1.hour, Time.now)
但这最终只会搜索今天的日期和那些时间。
您需要使用以下命令从created_at中提取小时部分PostgreSQL 的 date_part/extract 函数 http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT.
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 20
例如,这样的事情:
Purchases.where(["EXTRACT(HOUR FROM created_at) BETWEEN ? AND ?", 13, 14])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)