我有一份报告,其中包含日期和时间(仅一小时和几分钟)的参数。 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。
答案 0 :(得分:3)
这对我有用:
=CDate(Format(Parameters!Date.Value, "yyyy-MM-dd") + " " + Parameters!Time.Value)
没有尝试对您的具体示例进行问题排查,但它们可能会遇到您没有在日期和时间之间包含空格的问题。
上述表达可能适合您的报告;不知道它会出现在不同的地区。
如果您需要更多灵活性,也可以考虑在自定义代码中进行连接/转换。