Oracle sql查询以获取IST中日期范围的记录

时间:2013-07-30 11:41:24

标签: sql oracle oracle11g

我需要编写sql查询来获取IST格式的日期范围的记录。 我们以GMT格式将数据存储在数据库中。

select * 
from tableA a 
where to_date(a.end_date,'DD-MON-YYYY') between date1 and date2;

(end_date是tableA表中的一列)

现在,date1和date2应该从IST时区的数据库中获取记录。

我如何为上述要求编写sql查询。

1 个答案:

答案 0 :(得分:0)

只需尝试以下查询

SELECT FROM_TZ (
               CAST (SYSDATE AS TIMESTAMP)--replace sysdate with your date column
                , 'GMT'
               )
        AT TIME ZONE 'Asia/Calcutta'
  FROM DUAL;

在我的情况下,时区是CET,与INDIA有3.5小时的差异

select systimestamp from dual

7/30/2013 4:24:10.379910 PM +02:001


SELECT FROM_TZ (
               CAST (SYSDATE AS TIMESTAMP)--replace sysdate with your date column
                , 'GMT'
               )
        AT TIME ZONE 'Asia/Calcutta'
  FROM DUAL;

7/30/2013 7:54:10.000000 PM +05:30