Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSRS 2016 Oracle日期转换失败_Oracle_Reporting Services - Fatal编程技术网

SSRS 2016 Oracle日期转换失败

SSRS 2016 Oracle日期转换失败,oracle,reporting-services,Oracle,Reporting Services,从SSRS 2012升级到2016年后,由于SSRS在转换整个输入字符串之前给出ORA-01830:日期格式图片结束的问题,我们不得不重写所有报告 导致问题的代码如下所示: WHERE ( trunc(date_processed) BETWEEN NVL(:start_date,:subscription_start_date) AND NVL(:end_date,:subscription_end_date) ) 开始/结束日期在报告执行开始时均为空。订阅开始/结束日期从不为空,并

从SSRS 2012升级到2016年后,由于SSRS在转换整个输入字符串之前给出ORA-01830:日期格式图片结束的问题,我们不得不重写所有报告

导致问题的代码如下所示:

WHERE   (
  trunc(date_processed) BETWEEN NVL(:start_date,:subscription_start_date) AND NVL(:end_date,:subscription_end_date)
)
开始/结束日期在报告执行开始时均为空。订阅开始/结束日期从不为空,并且始终设置。让事情变得更令人沮丧的是,以下方法很好:

WHERE   (
  trunc(date_processed) BETWEEN  NVL(:start_date ,'01-JAN-1848') AND NVL(:end_date,'31-DEC-2039')
  and trunc(date_processed) BETWEEN :subscription_start_date and :subscription_end_date
)
但是,问题是:start_date参数在用户设置时不能覆盖subscription date参数


这在以前的版本中没有发生。这在我们所有的报告中都发生过,但并不少见。

将SSRS中的变量参数设置为文本,并使用to_DATE解决了我在使用Oracle源代码的SSRS时遇到的类似情况

WHERE ( trunc(date_processed) BETWEEN NVL(TO_DATE(:start_date,'mm/dd/yyyy'),TO_DATE(:subscription_‌start_date,'mm/dd/yy‌​yy')) AND NVL(TO_DATE(:end_date,'mm/dd/yyyy'),TO_DATE(:subscription_en‌​d_date, 'mm/dd/yyyy') ) 

我们可以通过使用一个表达式,用以下公式格式化输出数据集参数属性上的日期参数,从而绕过这个问题

=Format(Parameters!BeginDate.Value, "dd/MMM/yyyy")
=Format(Parameters!EndDate.Value, "dd/MMM/yyyy")
其中(trunc(处理日期)介于NVL(截止日期(:开始日期,'mm/dd/yyyy')、截止日期(:订阅开始日期,'mm/dd/yyyy'))和NVL(截止日期(:结束日期,'mm/dd/yyyy'))之间,到日期(:订阅结束日期,'mm/dd/yyyy'))