如何查询在特定时间创建的记录?我需要在数据库中为每条记录添加一个小时列吗?Ruby 将为 created_at.hour 返回一个不错的值,但我不能在如下查询中使用它:
results = Record.where("created_at.hour = ?", the_hour)
如何查询在特定时间创建的记录?我需要在数据库中为每条记录添加一个小时列吗?Ruby 将为 created_at.hour 返回一个不错的值,但我不能在如下查询中使用它:
results = Record.where("created_at.hour = ?", the_hour)
尝试:
results = Record.where("hour(created_at) = ?", the_hour)
您需要使用 MySQLhour
函数从时间戳中提取小时。
仅供其他人日后参考。
如果您碰巧使用 SQLite,其中hour
无法使用从时间戳中提取小时的功能,请使用此解决方案。
def find_record_by_created_at_hour(certain_hour)
Record.all.select {|record| record.created_at.hour == certain_hour }
end