presto - 获取最近周六的日期

presto - Get date for the last most recent Saturday

我想始终获取自当前日期以来最近的上周六的日期,我正在尝试此查询:

date_trunc('week', current_date) - interval '2' day

如果今天是星期一到星期六,这会起作用,但如果那天是星期天,它会 return 最后一个星期六而不是昨天。

示例:

如果我把 2021-07-18 写成 current_date,我希望它是 return 2021-07-17,但实际上 return 是 2021-07-10。

我猜这是因为将一周视为周一至周日,而不是周日至周六?

我该如何解决这个问题?谢谢!

添加两天,截断,然后减去两天:

select date_trunc('week', current_date + interval '2' day) - interval '2' day