Hive - 查询星期六作为给定日期的星期开始日期

Hive - Query to get Saturday as week start date for a given date

我在配置单元中有一个要求,即计算星期六作为配置单元中给定日期的星期开始日期 sql。

例)

Date                   week_start    
03-27-2021             03-27-2021    
03-28-2021             03-27-2021    
03-31-2021             03-27-2021    
04-07-2021             O4-03-2021    
04-09-2021.            04-03-2021

我尝试使用 pmod 和其他日期函数,但没有获得所需的输出。非常感谢任何见解。

Hive 提供 next_day(),可以针对此目的进行调整。我认为你想要的逻辑是:

select date_add(next_day(date, 'SAT'), -7)

这是一个奥术。 next_day() 获取下一个日期 参数日期之后的给定星期几。所以,转到下一个星期六,然后减去 7 天作为一周的开始。