juliandate to normaldate in redshift

时间:2017-04-20 08:19:02

标签: amazon-redshift etl

我的日期类似于117106,117107,该列在redshift数据库中是数字类型。理解格式为Julian格式。我想把它改成正常的日期格式,比如yyyymmdd。

我尝试将该函数应用于该列,并返回如下所示的值 选择to_date(117106) - 结果4393-07-10

请帮忙。

提前致谢

2 个答案:

答案 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