以下两个条件有何不同? DateRecordCreated是一个DTM字段。
cast([DateRecordCreated] as date) >= '2014-07-04' and cast([DateRecordCreated] as date) <= '2014-07-10'
[DateRecordCreated] >= '2014-07-04' and [DateRecordCreated] <= '2014-07-10'
他们看起来像是一样的条件,但给我不同的结果。 #2给了我一个更低的数字。
答案 0 :(得分:2)
第二个有时间成分。因此,DateRecordCreated
正在与日期2014-07-10
进行比较而没有时间(在第二种情况下)。这意味着任何不完全在午夜的价值都将导致测试失败。
第一个版本会删除时间组件,因此它将包含该日期的所有时间。
作为一般规则,我会将此逻辑写为:
[DateRecordCreated] >= '2014-07-04' and [DateRecordCreated] < '2014-07-11'
Aaron Bertrand实际上有一个关于这个主题的非常有用的博客。我建议您阅读it。