Oracle 将 RAW 转换为日期格式

问题描述 投票:0回答:3

我的 Oracle 数据库中有一个 RAW 字段,表示用户在系统中注册的日期。

该值类似于

24E2321A0000000000
但是我需要将该值转换为它代表的日期(等 2008-12-25 15:04:31)。

我尝试使用

totimestamp
(参见这个sqlfiddle),但那不起作用。

sql oracle date format
3个回答
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
投票

请尝试一下

declare
d date;
begin
   dbms_stats.convert_raw_value (hextoraw('7876070A010101'), d);
   dbms_output.put_line (d);
end;

0
投票

或更短,使用相应的函数:

select to_char (dbms_stats.CONVERT_RAW_TO_DATE (hextoraw ('7876070A010101')), 'YYYY-MM-DD HH24:MI:SS') as raw_converted from dual;

结果:

RAW_CONVERTED
-------------------
2018-07-10 00:00:00
© www.soinside.com 2019 - 2024. All rights reserved.