我现在有日期(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
。您可能需要注意理解CST
和CDT
。
有几种方法可以做到这一点:
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;
这取决于结果是否包括新时区。