gpt4 book ai didi

hadoop - hive 日历日到儒略日期

转载 作者:可可西里 更新时间:2023-11-01 15:03:52 26 4
gpt4 key购买 nike

我正在尝试将日历日期转换为儒略日期,我在 Teradata 中的做法是:

CAST((TO_CHAR(CURRENT_DATE-1,'J')) AS INT)

我试过以下方法:

from_unixtime(unix_timestamp(date_sub(to_date(from_unixtime(unix_timestamp())),1), 'yyyy-MM-dd'),'j')

但 'j' 不是配置单元的有效模式。

谢谢。

编辑:我不是要获取格式为 YYYYddd 的儒略日期,而是要获取今天 14/02/2018 为 2458164 的儒略日期。

更多编辑:Teradata 中的此函数输出儒略日,即自公元前 4713 年 12 月 31 日以来的天数。

最佳答案

问题已通过@âńōŋŷXmoůŜ的代码解决。我只是做了一点更改,使用 from_unixtime 和 unix_timestamp 而不是 current_date。

ceiling(2
-CAST(IF(MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))<=2, YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))-1,YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd'))))/100 AS INT)
+CAST(CAST(IF(MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))<=2, YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))-1,YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd'))))/100 AS INT)/4 AS INT)
+DAY(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))
+CAST(365.25*(IF(MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))<=2,YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))-1, YEAR(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd'))))+4716) AS INT)
+CAST(30.6001*(IF(MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))<=2, MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd')))+12, MONTH(to_date(from_unixtime(unix_timestamp('04/04/2018','dd/MM/yyyy'),'yyyy-MM-dd'))))+1) AS INT)
-1524.5)

我还设置了一个上限函数来避免小数。

关于hadoop - hive 日历日到儒略日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48757007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com