Oracle 上个月的第一个星期一
对于Oracle查询,我必须获取上个月的第一个星期一的日期 ms SQL是Oracle 上个月的第一个星期一,oracle,Oracle,对于Oracle查询,我必须获取上个月的第一个星期一的日期 ms SQL是 select dateadd (day, (9 - datepart(dw, eomonth(getdate(), -2)))%7, eomonth(getdate(), -2)) 但是Oracle中没有dateadd函数。给你: SQL> alter session set nls_date_language = 'english'; Session altered. SQL> alter sessi
select dateadd (day, (9 - datepart(dw, eomonth(getdate(), -2)))%7, eomonth(getdate(), -2))
但是Oracle中没有dateadd
函数。给你:
SQL> alter session set nls_date_language = 'english';
Session altered.
SQL> alter session set nls_date_Format = 'dd.mm.yyyy day';
Session altered.
SQL>
SQL> select next_day(add_months(trunc(sysdate, 'mm'), -1), 'monday') first_monday
2 from dual;
FIRST_MONDAY
--------------------
02.03.2020 monday
SQL>
它有什么作用
- 将今天的日期(
)截断为每月的第一天(SYSDATE
)'mm'
- 减去
month(1
)add\u month
- 使用
功能以及next\u day
参数'monday'
TRUNC(TRUNC(add_months(dt, -1), 'mm') + 6, 'iw')
这将从指定日期减去一个月,将其截断为该月的第一个月,然后再加上6天,最后将其截断为iso周的开始(通常为周一)
您需要在每月的第一个星期一加上6,以便将相应的星期一计算为每月的第一个星期一(否则您可能会选择上个月的最后一个星期一)
你可以看到它在[这里[()