提取本周日

时间:2016-10-04 13:56:16

标签: sql oracle

嗨我正在努力提取PL / SQL中任何给定日期的下周日。

我有以下代码

select TRUNC(to_date('10-07-2016','mm-dd-yyyy'), 'w') + 8 - 1/86400
from dual;

当日期本身不在星期日时,这种方法很有效。当我将日期更改为10/8(即星期日)时,结果将是10-15-2016,即下一个星期日,而期望的结果是10-08-2016。

任何想过的人?

2 个答案:

答案 0 :(得分:3)

尝试

select TRUNC(to_date('10-09-2016','mm-dd-yyyy'), 'iw')+6 from dual;

'iw'返回ISO周(星期一)的第一天

答案 1 :(得分:1)

SELECT NEXT_DAY(TO_DATE(&#39; 10-07-2016&#39;,&#39; mm-dd-yyyy&#39;) - 8,&#39; SUN&#39;)FROM DUAL; < / p>