Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Reporting services 报表工作正常,但在Management Studio中调用存储过程不工作_Reporting Services - Fatal编程技术网

Reporting services 报表工作正常,但在Management Studio中调用存储过程不工作

Reporting services 报表工作正常,但在Management Studio中调用存储过程不工作,reporting-services,Reporting Services,我有一个报告,它使用一个存储过程,该存储过程接受2个参数,然后显示结果 exec TestingCode @startdate, #endate 当我从报表服务器运行报表时,它运行平稳,没有任何错误消息。现在,当我在SQLServerManagementStudio中使用2个参数运行存储过程时,如下所示 exec TestingCode '2012-01-01' , '2012-03-01' 然后我得到转换错误消息 我知道如何修复该错误,但为什么从报表服务器运行时从报表传递参数不会导致报表

我有一个报告,它使用一个存储过程,该存储过程接受2个参数,然后显示结果

exec TestingCode @startdate, #endate
当我从报表服务器运行报表时,它运行平稳,没有任何错误消息。现在,当我在SQLServerManagementStudio中使用2个参数运行存储过程时,如下所示

exec TestingCode '2012-01-01' , '2012-03-01' 
然后我得到转换错误消息

我知道如何修复该错误,但为什么从报表服务器运行时从报表传递参数不会导致报表失败,但如果我从Management Studio执行存储过程,它会失败

谢谢


Ally

SQL Server支持许多基于字符串的日期格式-请参阅。大多数格式取决于您的设置,因此,这些设置有时可能有效,有时无效

解决此问题的方法是使用SQL Server支持的(稍作调整的)ISO-8601日期格式,无论您的SQL Server语言和日期格式设置如何,此格式始终有效

SQL Server支持的有两种风格:

  • YYYYMMDD
    仅适用于日期(无时间段);注意:无破折号,这非常重要
    YYYY-MM-DD
    独立于SQL Server中的日期格式设置,在所有情况下都将工作
或:

  • 日期和时间的
    YYYY-MM-DDTHH:MM:SS
    -此处注意:此格式有破折号(但可以省略),并且在
    DATETIME
    的日期和时间部分之间有一个固定的
    T
    分隔符
这对SQL Server 2000及更新版本有效

因此,在您的情况下,请尝试以下呼叫:

exec TestingCode '20120101', '20120301' 
这样行吗

如果您使用SQL Server 2008或更高版本以及
日期
数据类型(仅
日期
-
日期时间
!),那么您确实也可以使用
YYYY-MM-DD
格式,这也适用于SQL Server中的任何设置

不要问我为什么这个话题如此棘手,有些令人困惑——事实就是这样。但是使用
YYYYMMDD
格式,您应该可以使用任何版本的SQL Server以及SQL Server中的任何语言和日期格式设置