我有以下的表達SQL TO_CHAR TO_DATE TO_NUMBER
WHERE TO_CHAR(TO_DATE(dab.SNAPSHOT_DAY,'YYYYMMDD'),'MM') >=
TO_CHAR(TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD'),'MM') -1
'{RUN_DATE_YYYYMMDD}' returns the date of when the data was captured.
我得到以下錯誤:
ORA-01481:invalid number format model
列在數據類型方面協調一致。 dab.SNAPSHOT_DAY
是{DATE} 2016-07-24 00:00:00.0
你有什麼暗示會發生什麼?
我所試圖做的是獲取當前和過去的一個月的結果。這就是爲什麼我要將兩個日期轉換爲MONTH(MM),然後減去1.例如:
Snapshot_day = 05/JUN/2016 --> 06
RUN_DATE = 27/JUL/2016 --> 07
Comparing them: 06 >= 07 - 1 TRUE
謝謝大家!
列'SNAPSHOT_DAY'的日期類型是什麼? –
'TO_DATE(dab.SNAPSHOT_DAY, 'YYYYMMDD')'是毫無道理的,如果'snapshot_day'已經是一個'date'柱。 –
而不是試圖解決這個問題,你最好用簡單的英語說什麼輸入是什麼以及期望的結果是什麼。在任何情況下,比較日期後,您將它們轉換爲字符串是錯誤的,並且不清楚您打算如何從字符串中減去1。 – mathguy