我正在处理一个提供报告上显示的记录的查询,并注意到以前的开发人员使用“=<”和“>=”来比较作为所述查询参数的两个日期时间。这些参数作为字符串传递,不会转换为日期时间对象。我注意到,在查询结果中,我丢失了大约两天的数据。我想知道在使用 '=<' 和 '>=' 而不是使用 'between' 比较这些日期时间时,精度是否有任何差异(这可能是导致结果中数据丢失的原因)。
为了完整起见,这里是当前使用的比较的一个简单示例:
Declare @DateTo varchar(max) = '2013-07-29'
Declare @DateFrom varchar(max) = '2013-07-07'
SELECT * FROM Records WHERE Date =< @DateTo AND Date >= @DateFrom