在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