oracle sql上周日和上周六

tho*_*der 2 sql oracle date-arithmetic

我将在每个星期一的上周日和上周六进行计算.

例如今天是2013年7月8日星期一

上周日:2013年6月30日00:00:00

上周六:2013年7月6日23:59:59

注意,上周日是00:00:00,上周六是23:59:59

Max*_*Max 9

对于那些希望在第一天是星期一的周末(周六和周日)获得最后一个周末的人,这里有一个替代方案:

select today as todays_date,
       next_day(today - 7, 'sat') as prev_saturday, 
       next_day(today - 7, 'sun') as prev_sunday
from dual
Run Code Online (Sandbox Code Playgroud)

  • 我们的 Oracle 不喜欢 'today',所以我替换了 'sysdate' 并得到了预期的结果 - 感谢您教我有关 'next_day' 函数的知识! (2认同)

小智 5

查询获取最后一个SUNDAY:

SELECT TRUNC(SYSDATE)-(select to_char(sysdate-1, 'd') FROM DUAL) FROM DUAL
Run Code Online (Sandbox Code Playgroud)

查询get last SATURDAY:

SELECT TRUNC(SYSDATE)-(select to_char(sysdate, 'd') from dual) FROM DUAL
Run Code Online (Sandbox Code Playgroud)

如果要获取以前的SUNDAY / SATURDAY,则需要添加到sysdate-例如:

上周日:

SELECT TRUNC(SYSDATE)-(select to_char(sysdate, 'd')+6 FROM DUAL) FROM DUAL
Run Code Online (Sandbox Code Playgroud)

上周六:

SELECT TRUNC(SYSDATE)-(select to_char(sysdate, 'd')+7 FROM DUAL) FROM DUAL
Run Code Online (Sandbox Code Playgroud)

这种方法的好处是,你可以做到这一点查询一周的每一天享受