在oracle中查找星期几

时间:2012-10-10 09:19:56

标签: sql oracle

to_char(sysdate,'Day')返回当周的当前日期。我想要的是获得最近通过的“星期日”的date。当然,我们可以通过复杂的查询来完成它。但有什么简单的方法我不知道吗?

4 个答案:

答案 0 :(得分:7)

你可以用

完成
SELECT NEXT_DAY(SYSDATE-8, 'SUN') FROM DUAL;

这里

SYSDATE-8

返回8天前的一天&

NEXT_DAY(mydate, 'SUN') 

返回下一个星期日

答案 1 :(得分:0)

您可以使用如此简单的查询来执行此操作:

SELECT dt
  FROM ( SELECT SYSDATE - LEVEL - 1 dt
           FROM DUAL
        CONNECT BY LEVEL < 8)
 WHERE TO_CHAR ( dt, 'd' ) = 1

答案 2 :(得分:0)

我认为NEXT_DAY(SYSDATE-6, 'SUN')会起作用。假设当天是星期天,我回去6天(即最后一个星期一),所以当我寻找下一个星期天时,我会得到sysdate本身。然而,next_day(sysdate-8,'SUN')可用于获取前一周的最后一天。谢谢你的努力。

答案 3 :(得分:0)

SELECT dt
  FROM ( SELECT to_date('5/23/2014') - LEVEL + 1 dt
           FROM DUAL
        CONNECT BY LEVEL < 8)
 WHERE TO_CHAR ( dt, 'd' ) = 1

我将LEVEL - 1 dt更改为LEVEL + 1 dt以使其能够找到上一个星期日。