2012-10-10 97 views
4

to_char(sysdate,'Day')返回當前星期幾。我想要的是獲得最近通過的「星期日」的date。當然,我們可以用一個複雜的查詢來完成它。但是有沒有簡單的方法我不知道?在oracle中查找星期幾

回答

7

您可以

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

這裏

SYSDATE-8 

返回一天做8天前&

NEXT_DAY(mydate, 'SUN') 

返回下一個星期日吧

+0

其實我的問題是不是像'Previous_day'那樣? – venkatKA

+0

但它是必需的,因爲我們發現第二天 –

+0

我不知道這樣的功能 –

0

你可以用這樣簡單的查詢做到這一點:

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

我認爲NEXT_DAY(SYSDATE-6, 'SUN')會工作。假設當天爲星期日,我回到6天(即上一個星期一),所以當我尋找下一個星期天時,我會得到sysdate本身。而next_day(sysdate-8,'SUN')可以用來獲得前一週的最後一天。感謝您的努力。

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 dtLEVEL + 1 dt得到它的工作,找到以前的週日。