【发布时间】:2016-04-12 20:31:48
【问题描述】:
我有一个由需要参数的存储过程驱动的数据集。参数是 DATETIME,但我无法在报告中以这种方式呈现,因为 DateTime 显示为日历,我需要下拉值。
唉,我有一个数据集来驱动名为 BaselineDate 的参数的选择。问题归结为 SSRS 格式化参数的 DateTime 值然后作为 VARCHAR 传递给存储过程的方式。 VARCHAR 值的格式错误。
SSRS
预期值
2016-04-07 13:01:19.173
更新
根据@Marco Bong 的建议,我已将驱动参数选项的数据集转换为正确的格式。不幸的是,SSRS 我将参数值作为 null 传递。
下面是我创建的调试表。我只是将参数的值插入到此表中。正如您所看到的,SSRS 将 null 作为 NULL 传递给存储过程,这在理论上应该是不可能的,因为参数设置为不允许 null。有什么想法吗?
【问题讨论】:
-
让我了解您的尝试。您有一个使用日期时间值填充参数的数据集,但您的参数是文本数据类型,对吧?
-
您可以访问 SP 代码吗?我很确定如果您将 datetime 转换为 varchar,它将根据您的需要出现。 SSRS 将日期时间列隐式转换并格式化为文本以填充参数。
-
您还可以创建表变量并从您的 SP 填充它。
INSERT INTO @MyTableVariable EXEC MyStoredProcedure。然后从表中将列转换为 VARCHAR。 -
我可以这样做,但我遇到的问题是在 SSRS 级别。我需要用户从下拉列表中选择发布日期,然后在存储过程中使用该值。
-
您可以创建一个内部参数以将值传递给 SP,并使用您的可见参数让用户选择该值,然后将其再次转换为日期时间并将其值分配给您拥有的内部参数传递给 SP
=CDATE(Parameters!visibleBaseLineDate.Value)
标签: sql-server tsql datetime reporting-services