2

我有一个带有日期和时间(只有一个小时和分钟)参数的报告,这些参数是分开的。Date 参数的类型为 Date/Time,Time 参数设置为 Text。我想将这两个值合并为一个,因为我想将最少数量的参数传递给存储过程。我试图以多种方式实现该目标,但 SSRS 每次尝试都会返回错误。

如果我尝试使用这样的表达式:

=Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm")

SSRS 返回此错误:

将数据类型 nvarchar 转换为日期时间时出错。

当我尝试这样使用时Datetime.Parse

=DateTime.Parse(Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm"))

SSRS 说:

查询参数“@startDate”的值表达式包含错误:字符串未被识别为有效的 DateTime。从索引 0 开始有一个未知单词。

当我删除该FormatDateTime功能时,我又遇到了另一个错误:

查询参数“@startDate”的值表达式包含错误:输入字符串的格式不正确。

您对如何正确编写此表达式有任何想法吗?

PS。我使用 SSRS 2008 R2。

4

1 回答 1

3

这对我有用:

=CDate(Format(Parameters!Date.Value, "yyyy-MM-dd") + " " + Parameters!Time.Value)

在此处输入图像描述

在此处输入图像描述

没有尝试对您的具体示例进行故障排除,但它们可能会遇到您不包括日期和时间之间的空格的问题。

上面的表达式可能适合你的报告;不知道健壮它会在不同的语言环境中。

如果您需要更大的灵活性,您还可以考虑在自定义代码中进行连接/转换。

于 2013-05-13T13:06:43.560 回答