2013-12-09 7 views
2

У меня есть RAW-поле в моей базе данных Oracle, которое представляет дату регистрации пользователя в системе.Oracle конвертировать RAW в формат даты

Значение что-то вроде 24E2321A0000000000 Однако мне нужно преобразовать значение в дату его представления (и т.д. 2008-12-25 15:04:31).

Я пробовал с totimestamp (см. this sqlfiddle), но это не сработало.

+0

Первая попытка преобразовать это число в десятичной системе, и тогда вы сможете превратить его в дату .. –

+0

Как вы вставляете эту дату в SQL Server? –

+0

@dholakiyaankit: Это устаревшая система, я не знаю, почему они вставляют дату в RAW feild, для повышения производительности? – ewan

ответ

1

Может быть, это поможет:

SELECT utl_raw.cast_to_binary_integer('24E2321A0000000000') raw_to_int 
FROM dual 
/

Выход 36. Я не уверен, если вам нужно несколько дней или часов. Следующий пример о добавлении 36 часов SYSDATE:

-- SYSDATE + 36/24 -- 
SELECT SYSDATE+(utl_raw.cast_to_binary_integer('24E2321A0000000000')/24) my_date 
FROM dual 
/

MY_DATE 
--------------------- 
12/13/2013 4:29:22 AM 
Смежные вопросы