SSRS 2005将日期时间参数传递给Oracle

SSRS 2005将日期时间参数传递给Oracle,oracle,reporting-services,Oracle,Reporting Services,我有一份SSR2005报告运行在Oracle9数据库上 报表使用此简单查询返回数据集 SELECT order_number FROM apps.oe_order_headers_all WHERE ordered_date >= to_date(:start_date,'DD-MON-YYYY') AND ordered_date < to_date(:end_date,'DD-MON-YYYY') +1 从apps.oe\u order\u he

我有一份SSR2005报告运行在Oracle9数据库上

报表使用此简单查询返回数据集

    SELECT order_number FROM apps.oe_order_headers_all  
    WHERE ordered_date >= to_date(:start_date,'DD-MON-YYYY') 
    AND ordered_date  < to_date(:end_date,'DD-MON-YYYY') +1
从apps.oe\u order\u headers\u all中选择订单号
其中订单日期>=截止日期(:开始日期,'DD-MON-YYYY')
订单日期<截止日期(:结束日期,'DD-MON-YYYY')+1
如果参数在SSRS中是字符串类型,则可以正常工作。例如,开始日期和结束日期均为2014年1月1日。但如果更改为datetime,则报告将不返回任何内容(如果为字符串,则报告将返回许多行)。我真的想使用SSR的日期选择器控件


这可能更像是一个SSRS问题,而不是Oracle问题?

这可能是一个日期转换问题,但我很惊讶它既没有出错,也没有返回相同的数据-至少对于您给出的示例日期是如此

在上一个问题中,您输入了一个字符串,因此将
添加到\u date()
是有意义的。但是如果你把它作为一个日期绑定,那么你就不想要那些了

这很好:

to_date(<string>,'DD-MON-YYYY')
考虑到由此产生的奇怪错误,您还可以尝试:

AND ordered_date < :end_date + interval '1' day

嗨,我得到了这个ORA-00932:不一致的数据类型:预期的日期得到了号码。但是如果我去掉“+1”,它就可以工作了。现在可能是pl sql问题了?@thotwielder-这是一个奇怪的错误,如果绑定实际上是一个日期,那么应该没有问题。不确定SSR、OCI(使用内部原始格式)或。。。什么。“不幸的是,我不能用它来做实验。”亚历克斯普尔首先计算算术表达式。。当看到
+1
时,另一个操作数被期望为数字(因为优先级高于数字而不是日期..a
to_date()
应该解决这个问题)。。其中,与带有
DATE
数据类型的关系检查相同。。它隐式转换为
日期
!!我猜..@OracleUser-如果是这样的话,
select*from dual where sysdate
不会也失败吗?错误表明它正在将
:end_date+1
作为一个数字进行计算;类似于
select*from dual where sysdate<3
,它也抛出ORA-00932。但这也没有任何意义。@AlexPoole和ordered_dateto_date(to_char(<date>,<NLS_DATE_FORMAT>), 'DD-MON-YYYY')
SELECT order_number FROM apps.oe_order_headers_all  
WHERE ordered_date >= :start_date
AND ordered_date  < :end_date +1
AND ordered_date < :end_date + interval '1' day
AND ordered_date < CAST(:end_date AS DATE) + 1