我正在使用 SSRS 2008。我的报告中有一个包含日期/时间列 (DOB) 的表格。我也有一个日期/时间参数(MyDate)。我正在尝试在我的数据集上设置一个过滤器,例如
FormatDateTime(Fields!DOB.Value,2)<=FormatDateTime(Parameters!MyDate.Value,2)
它没有正确过滤我的表格。但是如果我删除 FormatDateTime 函数,那么它工作正常。我想了解这里有什么问题。
FormatDateTime
将返回一个字符串,因此您不再比较日期,而是比较它们的字符串表示形式。
比较日期02-Feb-2012
和10-Oct-2012
将给出与比较字符串2/2/2012
和不同的结果10/10/2012
。
如评论中所述,您似乎只是想从日期中删除时间部分?
像这样的东西应该可以工作,即将字符串转换回日期。
CDate(FormatDateTime(Fields!DOB.Value,2)) <= CDate(FormatDateTime(Parameters!MyDate.Value,2))
但这只是一个建议,有很多方法可以做到这一点。