【问题标题】:Find all data that were created between 9 am and 4pm Rails 3.2.1 and postgreSQL查找在上午 9 点到下午 4 点之间创建的所有数据 Rails 3.2.1 和 postgreSQL
【发布时间】:2012-06-14 02:52:16
【问题描述】:

我需要显示在上午 9 点到下午 5 点之间插入的所有数据,忽略日期。

我试过了

.where(created_at: Time.parse("9am")..Time.parse("5pm"))

*因为 Time.parse 会产生当前数据和时间。所以这个只显示今天上午 9 点到下午 5 点之间的结果。但是我需要在上午 9 点到下午 5 点之间输入的所有数据 *


我尝试使用数据库中的时间数据字段来解决。数据库存储正确,但是当我们通过 rails 查询时,及时追加了 01-01-2000 年。

虽然这是一个很简单的问题,但我被卡住了。

请帮我解决这个问题。

【问题讨论】:

  • 您使用的是什么数据库服务器?您可以添加“时间”字段(24 小时,如“4”或“16”)

标签: ruby-on-rails ruby-on-rails-3 time


【解决方案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);

【讨论】:

    猜你喜欢
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2020-09-19
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多