下一年的第一天,在 Oracle 中滚动一年

First day of the next year with rolling year in Oracle

提问人:MikiK 提问时间:11/16/2023 最后编辑:MT0MikiK 更新时间:11/16/2023 访问量:46

问:

我总是需要明年的 1 号来查询我的 Oracle。因此,从今天的角度来看,日期格式应如下所示:01-JAN-24

但是,一旦我们计算 2024 年,今年应该会自动调整。

我该怎么做?

oracle sql-date-functions

评论


答:

3赞 Littlefoot 11/16/2023 #1

一种选择是截断到年份(并得到今年 1 月 1 日),然后添加 12 个月。sysdate

要获得下一年的最后一天,请添加 24 个月(2 年)并减去一天:

SQL> select add_months(trunc(sysdate, 'yyyy'), 12) first_day,
  2         add_months(trunc(sysdate, 'yyyy'), 24) - 1 last_day
  3  from dual;

FIRST_DAY           LAST_DAY
------------------- -------------------
01.01.2024 00:00:00 31.12.2024 00:00:00
1赞 Niqua 11/16/2023 #2

我认为是您需要的功能:trunc(date)

select 
    trunc(sysdate, 'y') current_year
from 
    dual t1

这将返回当年的 1 月 1 日。

select 
    add_months(trunc(sysdate, 'y'), 12) shifted_year
from 
    dual t1

现在我们只需增加 12 个月