我有一个包含单独的日期和时间(只有小时和分钟)参数的报告。日期参数的类型为日期/时间,时间参数设置为文本。我想将这两个值合并为一个,因为我想向存储过程传递最少数量的参数。我尝试通过多种方式实现该目标,但 SSRS 每次尝试都会返回错误。
如果我尝试使用这样的表达式:
=Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm")
SSRS 返回此错误:
Error conterting data type nvarchar to datetime.
当我尝试像这样使用 Datetime.Parse
时:
=DateTime.Parse(Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.Value, "dd/MM/yyyy HH:mm"))
SSRS 说:
The Value expression for the query parameter '@startDate' contains an error: The string was not recognized as a valid DateTime. There is a unknown word starting at index 0.
当我删除 FormatDateTime
函数时,我收到另一个错误:
The Value expression for the query parameter '@startDate' contains an error: Input string was not in a correct format.
你知道如何正确编写这个表达式吗?
PS。我使用 SSRS 2008 R2。最佳答案
这对我有用:
=CDate(Format(Parameters!Date.Value, "yyyy-MM-dd") + " " + Parameters!Time.Value)
没有尝试对您的具体示例进行故障排除,但它们可能会遇到您未在日期和时间之间添加空格的问题。
以上表述可能适合您的报告;不知道它在不同的区域设置中是否稳健。
如果您需要更大的灵活性,您还可以考虑在自定义代码中进行串联/转换。
关于reporting-services - 如何将单独的日期和时间参数转换为有效的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522371/