presto - 获取最近一个星期六的日期

问题描述

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

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

如果今天是星期一 - 星期六这会起作用,但如果是星期日,它会返回最后一个星期六而不是昨天。

示例:

如果我将 2021-07-18 作为 current_date,我希望它返回 2021-07-17,但它实际上返回 2021-07-10。

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

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

解决方法

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

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