hive 跨年周如何处理

在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
原文地址:https://www.cnblogs.com/students/p/14871318.html