MSSQL中的差异比较运算符

时间:2018-06-21 10:56:17

标签: sql-server

select * from table_Sample
where ID = 9229 
and Datetime between '2018-06-18T18:30:00.00'
AND '2018-06-19T18:29:59.59'

第二个选项:

select * from table_Sample
where ID = 9229 
and Datetime >= '2018-06-18T18:30:00.00'
AND Datetime <= '2018-06-19T18:29:59.59'

您能解释一下两个查询相应的性能,结果集或其他任何区别吗?

1 个答案:

答案 0 :(得分:1)

比较执行计划。您会发现计划是相同的,因为BETWEEN被转换为与第二个查询相同的>=<=谓词,从而产生相同的结果和性能。

从功能的角度来看,还应考虑对特定日期范围的日期范围查询通常不希望考虑具有更高分辨率的时间类型的时间分量。在这种情况下,最好指定一个包含的开始日期和专有的结束日期。无论数据类型的精度如何,这都将避免因小数秒无意间丢失行。

SELECT * 
FROM dbo.table_Sample
WHERE ID = 9229 
    AND Datetime >= '2018-06-18T18:30:00.00'
    AND Datetime < '2018-06-20T00:00:00.00';