Rails以不同于预期的方式存储日期时间;影响查询

时间:2013-06-29 22:48:10

标签: ruby-on-rails datetime

我将DateTimes存储在SQLite数据库中。我在Rails配置中设置了时区。日期显示正确,但存储为完全不同的数字。我假设它与时区无关的日期存储,如UTC或类似的东西。但是,当我按日期查询时,这会影响返回的结果。

day = DateTime.new(params[:year].to_i, params[:month].to_i, params[:day].to_i)
where(start: (day.to_time...day.end_of_day.to_time)).order(:start)

日期可能需要转换为存储在数据库中的相同时区。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

使用Time.zone可以在存储和显示日期时解决很多时区问题。次。

话虽如此,DateTime类中有一个change方法,您可以手动设置对象的时区

我发现这些two articles特别有帮助