2016-04-06 11 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でそれを表現していますか?ハイブの

私のバージョンは、「ハイブ1.2.0のよう」可能ですdate_format機能をサポートしていません。ここ

+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) 
関連する問題