以下SQL,時間範圍報告
:P_COMP_DATE_FROM = '15 -nov-2015' :P_COMP_DATE_TO = '15 -nov-2015'
作爲比較之間'15 -nov-2015 00:00:00' 和'15 -nov-2015 00:00:00'
Select Ordered_date
From xxcost_rep
Where DATE_COMPLETED BETWEEN NVL(fnd_date.canonical_to_date(:P_COMP_DATE_FROM), DATE_COMPLETED) AND NVL(fnd_date.canonical_to_date(:P_COMP_DATE_TO)), DATE_COMPLETED);
我怎麼能比較這爲當日的日和結束的開始,所以能在範圍內顯示正確的結果。
我想下面的添加86399秒使它的一天結束,但收到錯誤:
WHERE DATE_COMPLETED BETWEEN NVL(fnd_date.canonical_to_date(:P_COMP_DATE_FROM), DATE_COMPLETED) AND NVL(fnd_date.canonical_to_date(to_date(:P_COMP_DATE_TO,'DD-MON-YYYY')+interval '86399' second), DATE_COMPLETED)
{P_TO_CUSTOMER=, P_COMP_DATE_FROM=2015/11/15 00:00:00, P_COMP_DATE_TO=2015/11/15 00:00:00, P_TO_ORDER_NUMBER=, P_CUST_REGION=, P_TO_DATE=, P_JOB_STATUS=, P_FROM_DATE=, P_FROM_ORDER_NUMBER=, P_FROM_CUSTOMER=} Calling XDO Data Engine... --SQLException java.sql.SQLDataException: ORA-01861: literal does not match format string
郵編。錯誤是由於您取決於您的本地** NLS **日期格式,這與您使用的日期格式不同。您必須始終明確提供**格式掩碼**。 –
不要將日期作爲字符串傳遞。使用適當的'日期'變量。然後,您也不需要使用自己的函數將字符串轉換爲日期的解決方法。 –