Ruby on rails Rails/PostgreSQL-选择两次之间的时间戳-转换为特定时区(即“05:00”)

Ruby on rails Rails/PostgreSQL-选择两次之间的时间戳-转换为特定时区(即“05:00”),ruby-on-rails,postgresql,timezone,timestamp,between,Ruby On Rails,Postgresql,Timezone,Timestamp,Between,我的PostgreSQL中有一个时间戳类型。(无时区) 默认情况下,此时间戳保存为UTC时间 我想选择一些记录: 介于(时间1)…(时间2)之间 因此,time1和time2是EST time中给定的值。例如,time1==美国东部时间1月10日晚上10点(UTC时间1月11日凌晨3点) 我知道我可以在时区使用和之间的组合。我在不同的查询中单独使用的,类似于: 时间戳::时区的时间戳'-05:00' 在'2016-01-13 00:00:00.000000'和'2016-01-14 00:00:

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

我想选择一些记录:

  • 介于(时间1)…(时间2)之间
  • 因此,time1和time2是EST time中给定的值。例如,time1==美国东部时间1月10日晚上10点(UTC时间1月11日凌晨3点)
  • 我知道我可以在时区使用和之间的组合。我在不同的查询中单独使用的,类似于:

    时间戳::时区的时间戳'-05:00'

    在'2016-01-13 00:00:00.000000'和'2016-01-14 00:00:00.000000'之间的“时间戳”

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

    任何帮助都将不胜感激


    谢谢

    您可以使用ActiveSupport和ActiveRecord按照

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

    然后,您可以使用TimeWithZone进行任何时区修改。然后ActiveSupport和ActiveRecord将为您处理所有奇怪的事情。

    您可以使用ActiveSupport和ActiveRecord按照

    Object.where(created_at: Time.new(2016, 01, 13, 1, 1, 1, '-05:00')..Time.new(2016, 01, 14, 1, 1, 1, '-05:00'))
    
    然后,您可以使用TimeWithZone进行任何时区修改。然后ActiveSupport和ActiveRecord将为您处理所有奇怪的事情