Hive选择最近n周的数据

nhhxz33t  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(326)

我正在将一些mysql查询重写到hiveql中,有一些东西我已经有一段时间无法确定了。
mysql语法如下( bc_date 是日期):

WHERE date_format(bc_date, '%x-%v') >= date_format(CURRENT_DATE - INTERVAL 16 WEEK, '%x-%v')

在hiveql中如何表达?
我的Hive版本不支持 date_format “从hive 1.2.0起”可用的函数

j2datikz

j2datikz1#

这是我的一个建议,似乎很管用。为了正确比较字符串,我在小于10的周数上加0

concat(year(broadcast_time), '-', case when weekofyear(broadcast_time)<10 then concat(0,weekofyear(broadcast_time)) else weekofyear(broadcast_time) end ) >=
concat( year(date_sub(to_date(from_unixtime(unix_timestamp())),112)), '-', case when weekofyear(date_sub(to_date(from_unixtime(unix_timestamp())),112))<10 then concat(0,weekofyear(date_sub(to_date(from_unixtime(unix_timestamp())),112))) else weekofyear(date_sub(to_date(from_unixtime(unix_timestamp())),112))  end )

相关问题