我的日期类似于117106,117107,该列在redshift数据库中是数字类型。理解格式为Julian格式。我想把它改成正常的日期格式,比如yyyymmdd。
我尝试将该函数应用于该列,并返回如下所示的值 选择to_date(117106) - 结果4393-07-10
请帮忙。
提前致谢
答案 0 :(得分:0)
以下是如何完成的
它的工作方式是前3位数是世纪朱利安偏移量,最后3位是日偏移量:
select dateadd(day,117106 % 1000,dateadd(year,(117106 /1000),convert(datetime,'01/01/1900')))-1
如果我做了一个错误的假设请发表评论,我会重新调整我的答案。
答案 1 :(得分:0)
谢谢Rahul的帮助。
我还没有尝试过提供的解决方案。但是我已经实现了以下解决方案,将其转换为日期格式
trim(cast(to_char)(dateadd(天,演员(右(x)为bigint) + datediff(天,' 1900-01-02',to_date(演员(左((1900+(x / 1000)),4)as char(4))||' -01& #39; ||' -01',' yyyy-mm-dd')),' 1900-01-01'), ' YYYYMMDD')为十进制),0)为x