这是一个更好/更短的解决方案吗
select add_months (date_sub(trunc (to_timestamp(cast (dim_evt_dte_key as string), "yyyyMMdd"), 'month'), 1), 1) as end_month from old;
得到每个月的最后一天??有月末功能吗?在 Impala 中,eomonth似乎无法让事情变得复杂: dim_evt_dte is bigint:20170210
dim_evt_dte
s4chpxco1#
你可以在下面使用 last_day() 功能
last_day()
select last_day(to_timestamp(cast (dim_evt_dte_key as string), "yyyyMMdd"))
pbpqsu0x2#
我认为 Impala 最简单的方法就是 trunc() 或者 date_trunc() :
trunc()
date_trunc()
select (trunc(dim_evt_dte_key, 'MMM') + interval 1 month) - interval 1 day) as end_month from old;
这假设密钥是一个时间戳。
2条答案
按热度按时间s4chpxco1#
你可以在下面使用
last_day()
功能pbpqsu0x2#
我认为 Impala 最简单的方法就是
trunc()
或者date_trunc()
:这假设密钥是一个时间戳。