目录 前言 跨年问题 计算当年第几周 前言 前段时间,做了一个日期维度表的需求,发现 计算当年第几周 有误,发现 Hive 中 weekofyear 函数存在跨年问题! 跨年问题 这一周算上一年还是下一年,取决于这一周的大多数日期(4天及以上)在哪一年。算在前一年,就是前一年的最后一周;算在后一年就是后一年的第一周。 比如下面这种情况: 2022年最后6天(>=4天)和2023年第一天在一周内,那么2023-01-01就会算在前一年的最后一周! SELECT WEEKOFYEAR('2023-01-01'); -- 5