我在這個查詢問題的日期:ORA-01847錯誤得到
select to_char(ADD_MONTHS((LAST_DAY(to_date(DATEVAR, 'yyyymmdd'))+1),-1),'yyyymmdd') from mytable
where ROWNUM=1
and var = to_char(last_day(to_date(DATEVAR, 'yyyyMMdd')), 'WW')-1;
我希望它返回時,VAR是本月的最後一週數量和返回空值時,它不是「T如果我的變種是 '29'(weekNumber)我得到:
ORA-01847: 「一個月的天必須在1月的最後一天之間」
但是,如果我改變週數爲'30'(本月的上週數)我得到正確的結果:
'20160701'
請幫助謝謝。
上週數量?上個星期的月數是30?當你的思想混淆在「星期」和「日」之間時,你如何期望寫出正確的代碼?沒有辦法從困惑的想法中編寫正確的代碼。不管其他什麼,你的最後一行將會失敗:你計算一個'to_char()'的東西(無所謂),然後你從結果字符串中減1。你需要一種不同的方法來問你的問題:陳述你正在做什麼,你的數據是什麼樣的,你想要什麼輸出 - 不要只顯示你的代碼(反正它不能正常工作)。 – mathguy
@mathguy,但今年有超過30周,那麼爲什麼你會認爲OP在日期和星期數字之間變得混亂? – Boneist
***從不***,*永遠*在'date'值上調用'to_date()'。 –