【问题标题】:Query on a time zone converted date produce the wrong result查询时区转换日期产生错误结果
【发布时间】:2014-01-09 06:06:36
【问题描述】:

数据存储为 PST,但在亚洲/达卡输入,当我尝试查询从 12/1/13 到 12/13/13 的批准日期时,我从 12/14/13 获得了一些记录.这些记录于 2013 年 12 月 14 日上午 6:27:45 在亚洲获得批准,并作为 PST 2013 年 12 月 13 日下午 4:27:45 存储在数据库中。当我查询时,我应该查询“亚洲/达卡”时间。这是我正在使用的转换:

FROM_TZ(CAST(TO_DATE(dateapproved, 'MM/DD/YYYY HH24:MI:SS') AS TIMESTAMP),
        'America/Los_Angeles') AT TIME ZONE 'Asia/Dhaka'
between TO_DATE('12/01/2013 00:00:00','MM/DD/YYYY HH24:MI:SS')
    and TO_DATE('12/13/2013 23:59:59','MM/DD/YYYY HH24:MI:SS') 

我需要做什么才能仅获取在指定日期范围为“亚洲/达卡”时间获得批准的记录?

谢谢!

【问题讨论】:

    标签: sql oracle timezone


    【解决方案1】:

    使用表中的数据类型TIMESTAMP WITH TIME ZONE,并使用函数DBTIMEZONE() or FROM_TZ()进行转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2017-09-25
      相关资源
      最近更新 更多