我有一个数字列,它显示像'20150802'这样的资历日期,并且希望以mm / dd / yyyy格式查看输出。我该如何将数字列转换为日期列?
感谢您的帮助!
答案 0 :(得分:4)
您可以使用以下转换:
select to_char(to_date(20150802,'yyyymmdd'),'mm/dd/yyyy')
as "Converted Date"
from dual;
Converted Date
--------------
08/02/2015
P.S。您可以按以下格式在dd
和mm
之间进行切换。由于我不知道02
或08
分别是month
还是day
。
答案 1 :(得分:0)
假设您的列是number
,并且它代表'yyyymmdd'
之类的日期,则您可能需要:
select to_char(to_date(to_char(yourColumn), 'yyyymmdd'), 'mm/dd/yyyy')
答案 2 :(得分:0)
NUMTOYMINTERVAL和NUMTODSINTERVAL函数以及一些算术运算将给出所需的结果。
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