如何在Oracle中将数字列更改为日期

时间:2019-03-12 16:04:17

标签: sql oracle

我有一个数字列,它显示像'20150802'这样的资历日期,并且希望以mm / dd / yyyy格式查看输出。我该如何将数字列转换为日期列?

感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

您可以使用以下转换:

select to_char(to_date(20150802,'yyyymmdd'),'mm/dd/yyyy')
       as "Converted Date"
  from dual;

Converted Date
--------------
08/02/2015

P.S。您可以按以下格式在ddmm之间进行切换。由于我不知道0208分别是month还是day

答案 1 :(得分:0)

假设您的列是number,并且它代表'yyyymmdd'之类的日期,则您可能需要:

select to_char(to_date(to_char(yourColumn), 'yyyymmdd'), 'mm/dd/yyyy')

答案 2 :(得分:0)

NUMTOYMINTERVALNUMTODSINTERVAL函数以及一些算术运算将给出所需的结果。

select 
  to_char(date'1-1-1' +
    NUMTOYMINTERVAL(trunc(n / 10000) - 1, 'year') +
    NUMTOYMINTERVAL(trunc(mod(n, 1000) / 100) - 1, 'month') +
    NUMTODSINTERVAL(mod(n, 100) - 1, 'day'),
    'mm/dd/yyyy') as s
from (select 20150802 as n from dual) t

输出:

S
----------
08/02/2015