我要求显示在上午9点到下午5点之间插入的所有数据,忽略日期。
我试过了
.where(created_at: Time.parse("9am")..Time.parse("5pm"))
* 因为Time.parse导致当前数据和时间。因此,这只显示今天上午9点到下午5点之间的结果。但我需要在上午9点到下午5点之间输入的所有数据*
我试图在数据库中使用时间数据字段来解决。数据库存储正确,但是当我们通过rails查询时,01-01-2000年就被追加了。
虽然这是一个非常简单的问题,但我被困住了。
答案 0 :(得分:1)
PostgreSQL定义了这里描述的函数EXTRACT
:http://www.postgresql.org/docs/current/interactive/functions-datetime.html
您可以使用以下内容进行查询:
SELECT * FROM (modelname) WHERE EXTRACT(HOUR FROM created_at) > (minhour) AND EXTRACT(HOUR FROM created_at) < (maxhour);