2014-01-23 13 views
0

在我的报告中,用户可以选择日期/时间参数(日期)来过滤其报告中的数据。SSRS - 将日期/时间参数值传递到存储过程=无可用数据

要从数据库获取数据我用的参数一个存储过程,所以日期/时间参数值通过传递到存储过程。

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

所以我检查了ExecutionLog3 date参数是如何通过的。 日期格式为“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:0014.01.2014 00:00:00一切正常。所以我想问题是,SSRS在将日期参数值发送到存储过程时使用美国日期格式

事情我尝试到目前为止:

  • 打开它使用存储的过程和改变了参数值的日期到CDate(Parameters!date.Value)
  • 所述数据集改变在数据集中的SELECT声明其用于填写日期参数与有效日期:SELECT CONVERT(date, k.date, 'dd/mm/yyyy') as date(在这里,我得到一个“nvarchar的最新”转换错误)

这将是如果SOM不错一个人可以帮助我。

+0

什么是数据库列和SP参数的数据类型? –

+0

您可以将SP中参数的格式更改为所需的格式吗?所以在SP本身,我的意思是。 – NickyvV

+0

@DanBracuk数据库列=日期和SP参数=日期 – Marc

回答

2

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

要做到这一点,改变要传递到您的数据设置为下面的表达式的参数值:

=Format(Parameters!date.Value,"dd/MM/yyyy") 
相关问题