Oracle:将日期存储在 BLOB 字段中并在需要时检索为日期

Oracle: Store date in a BLOB field and retrieve as date when needed

我正在使用此表达式将日期直接存储在 BLOB 字段中:

utl_raw.cast_to_raw(sysdate)

这很好用,但是当我需要检索这个日期时,我也无法通过下面的函数检索时间,只能检索日期。

utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(sysdate))

有没有办法用时间检索我存储的日期?

PS:我知道我可以在存储之前将日期转换为具有 TO_CHAR 和日期时间格式的 varchar,但假设我现在不能这样做。

utl_raw.cast_to_raw 接受字符串,而不是日期,因此您捕获的实际上是 to_char(sysdate)。这将使用当前的 nls_date_format,通常类似于 DD-MON-RRRR(和 nls_date_language,可能是英语,但可能因用户桌面设置而异)。您需要更改默认值或指定不同的格式,例如

utl_raw.cast_to_raw(to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'))