如何将单独的日期和时间参数转换为有效的日期时间?

时间:2013-05-13 12:43:45

标签: reporting-services ssrs-2008 business-intelligence

我有一份报告,其中包含日期和时间(仅一小时和几分钟)的参数。 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'的Value表达式包含错误:字符串未被识别为有效的DateTime。从索引0开始有一个未知单词。

当我删除FormatDateTime函数时,我又收到了另一个错误:

  

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

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

PS。我使用SSRS 2008 R2。

1 个答案:

答案 0 :(得分:3)

这对我有用:

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

enter image description here

enter image description here

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

上述表达可能适合您的报告;不知道它会出现在不同的地区。

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