我正在使用SSRS 2008.我的报告中有一个包含日期/时间列(DOB)的表。我也有一个日期/时间参数(MyDate)。我正在尝试在我的数据集上设置过滤器,如
FormatDateTime(Fields!DOB.Value,2)<=FormatDateTime(Parameters!MyDate.Value,2)
它没有正确过滤我的表格。但是,如果我删除FormatDateTime函数,那么它工作正常。我想了解这里的问题是什么。
答案 0 :(得分:2)
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))
但这只是一个建议,有很多方法可以做到这一点。