我正在编写一个程序,从数据库中获取时区偏移量,我的要求是使用时区偏移量来操作本地时间以获取 UTC 时间。
例如,
If local time is : 2/3/2013 2:05:53.000000 PM
timezone offset is : 5:30
Output should be : 2/3/2013 8:35:53.000000 AM (2/3/2013 2:05:53.000000 PM - 5:30)
任何人都可以帮助我为此提供适当的功能。
我正在编写一个程序,从数据库中获取时区偏移量,我的要求是使用时区偏移量来操作本地时间以获取 UTC 时间。
例如,
If local time is : 2/3/2013 2:05:53.000000 PM
timezone offset is : 5:30
Output should be : 2/3/2013 8:35:53.000000 AM (2/3/2013 2:05:53.000000 PM - 5:30)
任何人都可以帮助我为此提供适当的功能。
使用日期时间表达式,您可以做到更通用:
SELECT FROM_TZ(TIMESTAMP '2013-02-03 14:05:53', '05:30') AT TIME ZONE 'UTC'
FROM dual;
或者
SELECT (TIMESTAMP '2013-02-03 14:05:53' AT TIME ZONE '05:30') AT TIME ZONE 'UTC'
FROM dual;
您可以使用FROM_TZ通过组合 TIMESTAMP 和 TIME ZONE 来形成 TIMESTAMP WITH TIME ZONE 值。接下来,使用SYS_EXTRACT_UTC 将其转换为 UTC 时间。
SQL> select from_tz(timestamp'2013-02-03 14:05:53','05:30'),
sys_extract_utc(from_tz(timestamp'2013-02-03 14:05:53','05:30'))
from dual;
FROM_TZ(TIMESTAMP'2013-02-0314:05:53','05:30') SYS_EXTRACT_UTC(FROM_TZ(TIMESTAMP'2013-02-0314:05:53','05:30'))
------------------------------------------------- -----------------------------------------------------------------
03-FEB-13 02.05.53.000000000 PM +05:30 03-FEB-13 08.35.53.000000000 AM