在hive中,weekofyear可以計算某一天屬於這一年中的第幾個周
select weekofyear("2021-05-01")
17
但是如果是年末年初怎么計算呢?
2020-12-28 到 2021-01-03 是一個周,這是2020年的最后一周呢?還是2021年的第一周呢?hive中,這周的天數那一年的多,就屬於那一年。如圖,實際這一周是2020年的最后一周
查詢周所在年及日所在周
select year(date_sub(next_day('2021-01-01','monday'),4))*100+weekofyear('2021-01-01') 202053 select year(date_sub(next_day('2019-01-01','monday'),4))*100+weekofyear('2019-01-01') 201901