以下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 **日期格式,这与您使用的日期格式不同。您必须始终明确提供**格式掩码**。 –
不要将日期作为字符串传递。使用适当的'日期'变量。然后,您也不需要使用自己的函数将字符串转换为日期的解决方法。 –