0

Попытка конвертировать временную метку UNIX в временную шкалу Oracle с часовым поясом. Ожидается, что вы увидите другой выход, однако часть datetime такая же.Преобразование Oracle временной метки UNIX в метку времени с часовым поясом

Что такое отжим?

select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('EST') from dual; 

Выход: 27-февраля-08 09.21.56 .656000000 AM -05: 00

select (timestamp '1970-01-01 00:00:00' + numtodsinterval(1204104116656/1000,'second')) at time zone tz_offset('PST') from dual; 

Выход: 27-февраля-08 09.21.56 .656000000 AM -07: 00

Как нарисовать дату и время? Не исправляет ли Oracle?

ответ

7

Unix временные метки от 1970-01-01 00:00:00 UTC. Когда вы только что делаете timestamp '1970-01-01 00:00:00' Oracle принимает ваш часовой пояс!

Вы должны сделать это так:

(TIMESTAMP '1970-01-01 00:00:00' AT TIME ZONE 'UTC' +  
    numtodsinterval(1204104116656/1000,'second')) AT time zone tz_offset('PST'); 

`

+0

ничего себе, да. Работает! Благодаря! Даже не думал о преобразовании timestamp unix в UTC – antohoho

Смежные вопросы