oracle中如何将数字转换为日期时间

How to convert number as date time in oracle

我有一个字符串 08012016111512 其中前两个字符 08 是日期,接下来的两个字符 01 是月份,接下来的四个字符 2016 是年份,下一个两个字符 11 是小时,接下来的两个字符 15 是分钟,最后两个字符 12 是秒。建议我如何将上面的字符串转换为日期时间。

您需要使用 TO_DATE 函数将 string 文字显式转换为 DATE.

to_date('08012016111512', 'DDMMYYYYHH24MISS')

例如,

SQL> alter session set nls_date_format='DD-MM-YYYY HH24:MI:SS';

Session altered.

SQL> SELECT to_date('08012016111512', 'DDMMYYYYHH24MISS') my_date FROM dual;

MY_DATE
-------------------
08-01-2016 11:15:12

注意:alter session 语句仅用于以所需格式显示日期。