SSRS - 将日期/时间参数值传递给存储过程=无可用数据

时间:2014-01-23 13:50:23

标签: sql sql-server reporting-services ssrs-2008-r2

在我的报告中,用户可以选择日期/时间参数(日期)来过滤报告中的数据。

要从数据库获取数据,我使用带参数的存储过程,因此日期/时间参数值将传递给存储过程。

当用户选择日期并运行报告时,它仅显示“无可用数据”

所以我检查了 ExecutionLog3 日期参数的传递方式。 日期格式为“ mm / dd / yyyy hh:mm:ss”( 01/14/2014 00:00:00 - 1月14日)。

当我直接使用 01/14/2014 00:00:00 执行存储过程作为日期参数时,我也没有数据。但是当我将日期更改为 14/01/2014 00:00:00 14.01.2014 00:00:00 时,一切正常。所以我想问题是,SSRS在将日期参数值发送到存储过程时使用美国日期格式

到目前为止我尝试过的事情:

  • 打开使用存储过程的数据集,并将日期的参数值更改为CDate(Parameters!date.Value)
  • 更改了用于填充日期参数的数据集中的SELECT语句,其中包含有效日期:SELECT CONVERT(date, k.date, 'dd/mm/yyyy') as date(这里我获得了“nvarchar to date”转换错误)

如果有人可以帮助我,那就太好了。

1 个答案:

答案 0 :(得分:2)

问题基于数据库对日期值的格式设置。您可以使用Set DateFormat命令在数据库级别设置日期格式。我不相信这是你想要做的。听起来您希望SSRS以正确的格式传递给数据库。

为此,请将传入数据集的参数值更改为以下表达式:

=Format(Parameters!date.Value,"dd/MM/yyyy")