sql - 在 Oracle SQL 中计算周结束日期,其中周开始是当前 FRI 的前一个 SAT
问题描述
我的表中有一个交易日期,我想计算其周末结束日期
问题是我们每周从周六到周五,不要问我为什么,
因此,例如本周,今天是 10/5/2020,周末结束日期应该是 10/09/2020
这个星期六,2020 年 10 月 10 日,将是 2020 年 10 月 16 日的一周结束日期。
任何人都知道如何正确实现这一目标?
解决方案
你可以使用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()
取决于会话的语言。如果您的数据库或会话不是英语,您需要调整文字字符串。
推荐阅读
- github-actions - Github 操作手动执行不起作用
- c++ - 获取 std::vector 结果的地址
::at(size_t),如何修复 C++11? - java - Spring Security:总是坏凭证
- xamarin.forms - 在 Xamarin.Forms SearchBar 中禁用 iOS 自动完成功能
- c# - 带有时态表的 Entity Framework Core 3.1 - 访问 SysStartTime 和 SysEndTime
- ruby - 为什么我的 ruby 脚本中出现无限循环?
- java - 如何将缓存添加到不透明令牌自省
- python - 无法在百灵解析器python中一次解析多个语句
- sql - Sql 为具有特定模式的组分配唯一键
- javascript - 数字数组和一个数字 k,返回数组中的任意两个数字加起来是否为 k