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

Reporting services 如何将单独的日期和时间参数转换为有效的日期时间?,reporting-services,ssrs-2008,business-intelligence,Reporting Services,Ssrs 2008,Business Intelligence,我有一份带有日期和时间(只有一小时和一分钟)参数的报告,这些参数是分开的。日期参数的类型为日期/时间,时间参数设置为文本。我希望将这两个值合并为一个,因为我希望向存储过程传递最少数量的参数。我试图通过多种方式实现这一目标,但SSRS每次尝试都会返回一个错误 如果我尝试使用如下表达式: =Format(FormatDateTime(Parameters!startDate.Value, DateFormat.ShortDate).ToString() + Parameters!startTime.

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

如果我尝试使用如下表达式:

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

将数据类型nvarchar与datetime关联时出错

当我试图像这样使用
Datetime.Parse
时:

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

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

当我删除
FormatDateTime
函数时,又出现了一个错误:

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

你知道如何正确地写出这个表达式吗

注:我使用SSRS 2008 R2。

这对我很有用:

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

没有尝试对特定示例进行故障排除,但它们可能会遇到一些问题,您没有包括日期和时间之间的间隔

上述表述可能适用于您的报告;不知道它会在不同的地方


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

这正是我所要寻找的。它解决了问题,现在我的报告工作了,谢谢!嗨,伊恩,不幸的是,无法发送pn,因此这是询问您的唯一方法,您如何使用默认格式HH:mm管理输入参数时间。这是一个简单的文本字段还是日期/时间。先进的Thx-FrankHi,@Frank。在上述问题/答案中,这只是一个
Text
参数;它只是由运行报告的用户编码的。对于OP来说,这似乎已经足够了。上面的表达式假设
HH:mm
格式-如果不是该格式,它只会出错。如果您的需求有很大的不同,那么最好再问一个新问题。