sql - 获取一年中的第一个和最后一个日历日
问题描述
我正在寻找一种方法来获取甲骨文给定年份的法语语言环境中的第一个和最后一个日历日。
例如,2020 年的第一个日历日是 30/12/2019(因为它是 2020 年第 1 周的星期一),最后一个日历日是 03/01/2021(因为它是 2020 年第 53 周的星期日)。
我有很多针对 2020 年 1 月 1 日和 2020 年 12 月 31 日的解决方案,但没有针对日历的第一天和最后一天。
我尝试使用 to_dateselect trunc(to_date('1 2020','IW YYYY'), 'YEAR') from dual;
但得到 ORA-01820 错误代码。select to_date('1 2020','DDD YYYY') from dual;
我得到了 01/01/20 00:00:00
谢谢你的帮助。
解决方案
你可以这样做:
select
trunc(date'2020-01-01', 'IW') first_calendar_day_2020,
trunc(date'2020-12-31', 'IW') + 6 last_calendar_day_2020
from dual
IW
为您提供相应日期的 ISO 周的第一天。如果您想要该周的星期日,您可以添加 6 天。
FIRST_CALENDAR_DAY_2020 | LAST_CALENDAR_DAY_2020 :------------------------ | :--------- 19 年 12 月 30 日 | 21 年 1 月 3 日
推荐阅读
- sql - 将 NULL 替换为 0
- mysql - Symfony 5 和 Doctrine,找不到使用 3 个相关实体获取结果的方法
- html - HTML 是否需要在文档末尾换行?
- node.js - 在 fetch 方法中调用 graphql 查询
- java - 消息列表的 RSA 解密速度很慢
- python-sphinx - sphinx:嵌套目录中的嵌套包含
- django - virtualenv中的uwsgi,但django的附加守护进程没有得到venv
- lua - 如何在播放器上放置级联(ESP)?
- c++ - MSBuild - 如何在编译时判断文件是否存在并使用它?
- r - 表格:如何衡量不同日期的维度集的相似性?