2016-10-04 4 views
0

こんにちは私は、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になります。

誰か考えていますか?

+0

2016年10月15日は土曜日ですか?日曜日ではなく土曜日を過ごしたことを意味しましたか、その日を1日後に読むべきですか? – Boneist

答えて

1

SELECT NEXT_DAY(TO_DATE('10 -07-2016 '、' mm-dd-yyyy ') - 8、' SUN ')FROM DUAL;

+0

NEXT_DAYは、指定された週の日に対応する入力日付の次の日付を返します。元の日付から8を減算すると、日曜日がすべての日付についてその週自体になります。 – Akhil

+0

申し訳ありませんが、私はこれについてより明確にする必要があります。私は来週の日曜日を待ちます。私の入力は10/7で、10/2ではなく10/8が必要です。 – malamoji

+0

コードから-8部分を取り除くとうまくいくはずです。私のように、NEXT_DAY関数は、その週の日が発生する次の日付を与えます。 – Akhil

3

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

'iw'を試しISO週の最初の日を返します(月曜日)

関連する問題