查询时区转换日期会产生错误的结果

时间:2014-01-09 06:06:37

标签: sql oracle timezone

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

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') 

如果只将指定日期范围内批准的记录设为“亚洲/达卡”时间,我需要做些什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

相关问题