2016-04-06 69 views
0

我正在將一些MySQL查詢重寫到HiveQL中,並且有些事情我一段時間都無法完成。蜂巢。選擇過去N周的數據

MySQL的語法是這樣的(bc_date日期):

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

一個人如何表達,在HiveQL?

我的蜂巢版本不支持date_format功能,這是可以「爲蜂巢1.2.0的」

+0

您使用哪種配置單元版本? – user1314742

+0

我的Hive版本是1.0.0 – Dennis

+0

是否必須使用'date'類型?我的意思是你可以改變類型爲字符串? – user1314742

回答

0

這裏有一個建議,我已經和它似乎工作。我將小於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)