我的Oracle数据库中有一个RAW字段,表示用户在系统中注册的日期。
值类似24E2321A0000000000
但是我需要将值转换为它所代表的日期(等2008-12-25 15:04:31)。
我尝试使用totimestamp
(请参阅 this sqlfiddle),但这不起作用。
答案 0 :(得分:1)
也许这会有所帮助:
SELECT utl_raw.cast_to_binary_integer('24E2321A0000000000') raw_to_int
FROM dual
/
输出是36.我不确定你是否需要几天或几小时。下一个示例是关于向SYSDATE添加36小时:
-- 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
答案 1 :(得分:0)
请尝试一个
declare
d date;
begin
dbms_stats.convert_raw_value (hextoraw('7876070A010101'), d);
dbms_output.put_line (d);
end;