【问题标题】:Rails storing datetimes differently than expected; affecting queriesRails 以不同于预期的方式存储日期时间;影响查询
【发布时间】:2013-06-29 22:48:09
【问题描述】:

我将 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)

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

我该如何解决这个问题?

【问题讨论】:

标签: ruby-on-rails datetime


【解决方案1】:

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

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

我发现这些 two articles 特别有用

【讨论】:

  • 谢谢,这些文章真的很有帮助。 tl;博士:Time.zone.parse('2013-01-30')
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 2015-10-01
相关资源
最近更新 更多