2015-12-09 9 views
1

Я пытаюсь получить местную временную марку из доступных TimeZone Name и часовой пояс.Конвертировать в местное время

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

Необходимое Местное время?

+0

выберите localtimestamp из двух? Ваш вопрос непонятен ... – kevinsky

+0

Мне нужно выяснить местный штамп в соответствии с местным часовым поясом, предположим, что «EST» или «Азия/Бангкок» - это зона, каково будет местное время? –

+0

какая ваша 9-часовая зона – Buddi

ответ

0

В oracle у нас есть функция New_Time() для преобразования даты из часового пояса1 в дату в часовом поясе2.

Пример

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

Над запрос будет Преобразовать от EST TO MST

Выход

December, 09 2015 16:07:42 

FOr Более refer и refer1

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 
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