Как выполнить конвертацию из Unix time (int, Epoch) в timestamp (DATE)?
Пытаюсь выполнить конвертацию из Unix time (int, Epoch).
Гугление с предложениями типа to_char(to_date... не помогает, "так как ожидается формат date".
Есть ли простые способы справиться с задачей?
Ожидаю YYYY-MM-DD HH24:MI:SS из 1610534373 с типом данных number.
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Стандартной функции конвертирования нет. Реализуйте свою собственную, например:
with
function epoch2dt (s int) return date is
begin
return date'1970-01-01'+(1/24/60/60)*s;
end;
function epoch2ts(s int) return timestamp is
begin
return timestamp'1970-01-01 00:00:00'+numtodsinterval (s, 'second');
end;
select epoch2dt (1610534373) dt, epoch2ts (1610534373) ts
from dual;
/
DT TS
------------------- -----------------------------
2021-01-13 10:39:33 2021-01-13 10:39:33,000000000