Rails / PostgreSQL - 选择两个时间之间的时间戳 - 转换为某个时区(即 "-05:00" )



我的PostgreSQL中有一个timestamp类型。(无时区)默认情况下,此timestamp保存为UTC时间。

我想选择一些记录:

  1. 介于(时间1)。。。(时间2)
  2. 因此,时间1和时间2是以EST时间给出的值。例如,时间1==美国东部时间1月10日晚上10点(其中==UTC 1月11日凌晨3点)

我知道我可以使用BETWEENAT TIME ZONE的组合。我在不同的查询中单独使用,有点像:

timestamp::TIMESTAMPTZ AT TIME ZONE '-05:00'

"timestamp" BETWEEN '2016-01-13 00:00:00.000000' AND '2016-01-14 00:00:00.000000'

但我只是不知道如何在同一个查询中一起使用它们——请原谅我在SQL查询中的Noobness。

如有任何帮助,我们将不胜感激。

感谢

您可以使用ActiveSupport和Active record来做一些类似的事情

Object.where(created_at: Time.new(2016, 01, 13, 1, 1, 1, '-05:00')..Time.new(2016, 01, 14, 1, 1, 1, '-05:00'))

然后您可以使用TimeWithZonehttp://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html#method-c-new适用于任何时区修改。然后ActiveSupport和ActiveRecord将为您处理所有奇怪的事情。

相关内容

  • 没有找到相关文章

最新更新