首页 > 解决方案 > 在 Oracle SQL 中计算周结束日期,其中周开始是当前 FRI 的前一个 SAT

问题描述

我的表中有一个交易日期,我想计算其周末结束日期

问题是我们每周从周六到周五,不要问我为什么,

因此,例如本周,今天是 10/5/2020,周末结束日期应该是 10/09/2020

这个星期六,2020 年 10 月 10 日,将是 2020 年 10 月 16 日的一周结束日期。

任何人都知道如何正确实现这一目标?

标签: sqlstringoracledatedatetime

解决方案


你可以使用next_day()

select t.*,
    case when to_char(mydate, 'FMDAY') = 'FRIDAY' 
        then mydate
        else next_day(mydate, 'FRIDAY')
    end as endofweek
from mytable t

请注意,两者to_char(..., 'DAY')next_day()取决于会话的语言。如果您的数据库或会话不是英语,您需要调整文字字符串。


推荐阅读