在 HIVE 中生成日期系列时,将有效日期限制为今天

Posted

技术标签:

【中文标题】在 HIVE 中生成日期系列时,将有效日期限制为今天【英文标题】:When generating date series in HIVE, limit effective date out to TODAY 【发布时间】:2020-09-13 09:49:59 【问题描述】:

一段时间前,this question 得到了关于在 hive 中生成日期系列的回答,这意味着填充有效日期和有效日期(或开始-结束日期)之间的天数。我想知道是否可以从同一个语句中将结束日期限制为今天,对于那些结束日期可能是 9999-12-21 的情况,这是一个活动记录。是否可以?怎么样?

上面链接的问题中建议的脚本是:

select  t.AccountNumber
       ,date_add (t.StartDate,pe.i)   as Day

from    Table1 t
        lateral view 
        posexplode(split(space(datediff(t.EndDate,t.StartDate)),' ')) pe as i,x

【问题讨论】:

你不能把case when 这样-case when t.EndDate='9999-12-31' then now() else t.EndDate end放在上面的sql中计算EndDate吗? 谢谢@KoushikRoy。发布后几个小时尝试了不同的方法,最后它在以下情况下工作:CASE WHEN t.eff_out_y = '9999-12-31' THEN CURRENT_DATE() 【参考方案1】:

请使用 - case when t.EndDate='9999-12-31' then current_date() else t.EndDate end

【讨论】:

以上是关于在 HIVE 中生成日期系列时,将有效日期限制为今天的主要内容,如果未能解决你的问题,请参考以下文章

从表中的开始日期和结束日期在 Postgres 中生成系列

角度日期范围选择器 - 如何在已经使用 min 属性将最小日期设置为今天时禁用同一天

如何在 BigQuery 中生成日期系列并为缺失的销售数据填充零

在 PostgreSQL 中生成两个日期之间的时间序列

如何在 C# 中生成时间和日期并为 mysql 格式化?

在bash中生成特定日期