时区转换为基于CST的GMT偏移



我现在有日期(2014年10月1日)、时间(00:37:31)、GMT差(-360)我想把时间通知CST。解决方案可以是javascript或者oracle数据库。

我读了好几篇文章,但哪里都读不到。。有人能帮我吗。。。

在Oracle中,要将本地时间转换为另一个时区的时间,需要CAST TIMESTAMP WITH TIMEZONE

例如,我想将"IST"印度标准时间,即我的本地时区转换为"CST",即Central:

SQL> WITH T AS
  2    ( SELECT to_timestamp('10/01/2014 11','mm/dd/yyyy hh24') ist FROM dual
  3    )
  4  SELECT ist,
  5    CAST(CAST(ist AS TIMESTAMP WITH TIME ZONE) at TIME zone 'CST' AS TIMESTAMP) cst
  6  FROM t
  7  /
IST                                 CST
----------------------------------- ------------------------------
01-OCT-14 11.00.00.000000000 AM     01-OCT-14 12.30.00.000000 AM

照顾好Daylight saving。您可能需要注意理解CSTCDT

有几种方法可以做到这一点:

SELECT 
    (TIMESTAMP '2014-10-01 00:37:31') AT TIME ZONE 'CST',
    FROM_TZ((TIMESTAMP '2014-10-01 00:37:31'), 'CST'),
    CAST((TIMESTAMP '2014-10-01 00:37:31') AT TIME ZONE 'CST' AS TIMESTAMP) 
FROM DUAL;

这取决于结果是否包括新时区。

相关内容

  • 没有找到相关文章

最新更新