2017-10-17 71 views
0

我給出了查詢,我得到的錯誤爲SQL Error: ORA-01861: literal does not match format string 01861ORD_DEL_DATE是日期數據類型,值存儲在此列中的27-SEP-2017 12-00-00。它不可能爲我改變NLS設置,所以如果我可以在查詢中更改並使其運行,這是可能的。ORA-01861:文字不匹配格式字符串01861

SELECT * from Report_Result 
    WHERE ORD_DEL_DT >= TO_CHAR(TRUNC (SYSDATE , 'IW') - 7 , 'YYYYMMDD') 
and ORD_DEL_DT < TO_CHAR (TRUNC (SYSDATE , 'IW'), 'YYYYMMDD') 

回答

3

右側返回類似'20171009'的八位VARCHAR2字符串。由於左側是日期,因此Oracle會嘗試使用NLS日期參數將此字符串轉換爲日期,並且由於該字符串與NLS設置不匹配而失敗。

你爲什麼使用字符串?如果ORD_DEL_DT是日期,請將其與trunc(sysdate, 'iw') - 7trunc(sysdate, 'iw')進行比較。

+0

謝謝它的作品 – Andrew

相關問題