Ruby on rails 查询在小时创建的\u

Ruby on rails 查询在小时创建的\u,ruby-on-rails,Ruby On Rails,如何查询在特定时间创建的记录?我是否需要为每条记录在db中添加一个小时列?Ruby将在.hour为created_返回一个很好的值,但我不能在如下查询中使用它: results = Record.where("created_at.hour = ?", the_hour) 尝试: 您需要使用MySQLhour函数从时间戳中提取小时。仅供将来参考 如果您碰巧使用SQLite,其中从时间戳提取小时的hour函数不可用,请使用此解决方案 def find_record_by_created_at_

如何查询在特定时间创建的记录?我是否需要为每条记录在db中添加一个小时列?Ruby将在.hour为created_返回一个很好的值,但我不能在如下查询中使用它:

results = Record.where("created_at.hour = ?", the_hour) 
尝试:


您需要使用MySQL
hour
函数从时间戳中提取小时。

仅供将来参考

如果您碰巧使用SQLite,其中从时间戳提取小时的
hour
函数不可用,请使用此解决方案

def find_record_by_created_at_hour(certain_hour)
  Record.all.select {|record| record.created_at.hour == certain_hour }
end

你所拥有的会很好用的。变量
小时数
是整数吗?小时数是整数。错误消息:Mysql2::error:where子句中的未知列“created_at.hour”问题是Rails正在尝试查找名为
created_at.hour
的列。Rails不明白
.hour
实际上是一种方法。
def find_record_by_created_at_hour(certain_hour)
  Record.all.select {|record| record.created_at.hour == certain_hour }
end