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

标签 reporting-services ssrs-2008 business-intelligence

我有一个包含单独的日期和时间(只有小时和分钟)参数的报告。日期参数的类型为日期/时间,时间参数设置为文本。我想将这两个值合并为一个,因为我想向存储过程传递最少数量的参数。我尝试通过多种方式实现该目标,但 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)

enter image description here

enter image description here

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

以上表述可能适合您的报告;不知道它在不同的区域设置中是否稳健。

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

关于reporting-services - 如何将单独的日期和时间参数转换为有效的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522371/

相关文章:

reporting-services - 将参数传递给 SharePoint 2010 中查询字符串中的 ssrs 报告

reporting-services - SSRS 模板

sql-server - 数据集的 SSRS 查询执行失败

crystal-reports - Business Objects Enterprise 将多个报告安排到一封电子邮件中

sql - SSRS - 在多个数据集中重用临时表

c# - SSRS 报告中令人讨厌的 NULL 复选框

reporting-services - 如何使用 ssrs 表达式显示前一个工作日

reporting-services - 在 SSRS 中读取 XML

mysql - 创建一个函数将分隔字符串拆分到表中

excel - 如何让 Excel 在 SSAS 多维数据集中使用 Formatted_value