在 impala 中将儒略日期转换为公历日期

Posted

技术标签:

【中文标题】在 impala 中将儒略日期转换为公历日期【英文标题】:Convert Julian Dates to Gregorian dates in impala 【发布时间】:2016-12-14 13:56:44 【问题描述】:

我有一个表格,其中日期为儒略日期,我想将这些日期转换为日历日期。

这是我拥有的儒略日期示例:2457395。

在日历日期中,它应该是:07012016 (DDMMYYYY)。

我尝试将日期转换为自 (01/01/1900) 以来的天数,但即使我不知道如何将日期作为输入天数。

非常感谢!

【问题讨论】:

【参考方案1】:

Impala 不支持日期,只支持时间戳;并且它没有很多日期/时间格式化功能;所以你需要有创造力,例如

select JULIAN_DATE,
  adddate('1900-01-01 00:00:00Z', JULIAN_DATE -2415021) as AS_TIMESTAMP,
  to_date(adddate('1900-01-01 00:00:00Z', JULIAN_DATE -2415021)) as AS_ISO_DATE_STRING,
  from_unixtime(unix_timestamp(adddate('1900-01-01 00:00:00Z', JULIAN_DATE -2415021)), "ddMMyyyy") as AS_DMY_DATE_STRING
from WHATEVER

样本输出:

julian_date as_timestamp        as_iso_date_string as_dmy_date_string 
----------- ------------------- ------------------ ------------------ 
2457395     2016-01-07 00:00:00 2016-01-07         07012016           

【讨论】:

【参考方案2】:

如果它是 JDE Julian 日期,例如 118163 表示 12-06-2018,那么可以使用以下代码 date_add(to_timestamp(concat(substr(cast(cast(118162 + 1900000 as int) as string),1,4),'01','01'),'yyyyMMdd'), cast(substr(cast(cast(118162 + 1900000 as int) as string),5,3) as int)-1)

【讨论】:

以上是关于在 impala 中将儒略日期转换为公历日期的主要内容,如果未能解决你的问题,请参考以下文章

在 Impala 中将 YYYYMMDD 字符串转换为日期

在 s-s-rS 中转换儒略日期

WPS表格怎么将公历转化成农历日期?

如何在 JavaScript 中将公历日期更改为波斯日期?

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28

儒略日和常规日期的转换(Python版)