1

我正在尝试从可用的时区名称和时区获取本地时间戳。

TimeZone ='19:59:00' TimeZoneName ='EST'

需要当地时间?

4

3 回答 3

1

NEW_TIME 是一个以美国为中心的功能,在更广阔的世界其他地方没有用处。您可以通过以下方式获得您想要的:

DECLARE
  l_time CONSTANT TIMESTAMP(8) WITH TIME ZONE := TO_TIMESTAMP_TZ( '01/01/2017 19:59:00 ' || TZ_OFFSET('EST'), 'fmDDfm/MM/YYYY fmHH24fm:MI:SS TZH:TZM' );
BEGIN
  dbms_output.put_line( 'EST Time->' || l_time );
  dbms_output.put_line( 'Local Time->' || l_time AT TIME ZONE SESSIONTIMEZONE );    -- Assumes session is local
END;

请注意,TIMESTAMP 必须包含日期上下文

Output:
EST Time->01-JAN-17 07.59.00.00000000 PM -05:00
Local Time->02-JAN-17 08.59.00.000000000 AM +08:00
于 2017-01-13T02:46:04.083 回答
0

你是什​​么意思EST

SELECT tzabbrev, TZ_OFFSET(tzname), tzname  
FROM V$TIMEZONE_NAMES tz 
WHERE tzabbrev = 'EST'
ORDER BY 1,2,3;

TZABBREV    TZ_OFFSET(TZNAME)   TZNAME
EST +10:00  Australia/Brisbane
EST +10:00  Australia/Lindeman
EST +10:00  Australia/Queensland
EST +10:30  Australia/Broken_Hill
EST +10:30  Australia/Yancowinna
EST +11:00  Australia/ACT
EST +11:00  Australia/Canberra
EST +11:00  Australia/Hobart
EST +11:00  Australia/LHI
EST +11:00  Australia/Lord_Howe
EST +11:00  Australia/Melbourne
EST +11:00  Australia/NSW
EST +11:00  Australia/Sydney
EST +11:00  Australia/Tasmania
EST +11:00  Australia/Victoria
EST -05:00  America/Cayman
EST -05:00  America/Detroit
EST -05:00  America/Fort_Wayne
EST -05:00  America/Grand_Turk
EST -05:00  America/Indiana/Indianapolis
EST -05:00  America/Indiana/Marengo
EST -05:00  America/Indiana/Vevay
EST -05:00  America/Indianapolis
EST -05:00  America/Iqaluit
EST -05:00  America/Jamaica
EST -05:00  America/Kentucky/Louisville
EST -05:00  America/Louisville
EST -05:00  America/Montreal
EST -05:00  America/New_York
EST -05:00  America/Panama
EST -05:00  America/Thunder_Bay
EST -05:00  Canada/Eastern
EST -05:00  EST
EST -05:00  EST5EDT
EST -05:00  Jamaica
EST -05:00  US/East-Indiana
EST -05:00  US/Eastern
EST -05:00  US/Michigan
EST -06:00  America/Cancun
EST -06:00  America/Chicago
EST -06:00  America/Indiana/Knox
EST -06:00  America/Indiana/Petersburg
EST -06:00  America/Indiana/Vincennes
EST -06:00  America/Knox_IN
EST -06:00  America/Managua
EST -06:00  America/Rankin_Inlet
EST -06:00  CST
EST -06:00  US/Central
EST -06:00  US/Indiana-Starke
EST -07:00  America/Cambridge_Bay
于 2015-12-09T21:03:48.853 回答
0

在 oracle 中,我们有 New_Time() 函数将日期从时区 1 转换为时区 2 中的日期。

例子

select NEW_TIME (sysdate, 'EST', 'MST')
from dual

上面的查询将从 EST 转换为 MST

输出

December, 09 2015 16:07:42

更多参考参考1

于 2015-12-09T18:11:51.773 回答