日期时间“BETWEEN AND”和“> AND< =”之间有什么区别?

时间:2012-05-29 03:16:53

标签: sql sql-server sql-server-2008-r2 query-optimization

我们团队中的每个人都有自己的方法来提取日期之间的数据,我们提供了两种常用的提取数据的方法:

  1. [DateTimeColumn] BETWEEN @StartDate AND @EndDate
  2. [DateTimeColumn]> @StartDate AND [DateTimeColumn]< = @EndDate
  3. 何时在日期时间使用/差异“BETWEEN”和“> AND< =”:SQL查询优化以及哪两者最适合使用。

2 个答案:

答案 0 :(得分:9)

BETWEEN运算符使用间隔的包含结尾。每当您要排除间隔的一端或两端时,请使用特定的比较操作。

此外,当您针对复杂表达式进行测试时,BETWEEN很方便:例如,编写类似

的内容
... AND CASE WHEN A>0 THEN open_date ELSE close_date END BETWEEN '01/01/2012' AND '05/01/2012'

比重复CASE表达式两次容易。

答案 1 :(得分:1)

只是添加到dashblinkenlight所提出的观点,我实际上看不到Between和<>之间的任何性能问题。运营商。您可以在两种情况下检查查询计划。唯一明显的区别是介于两者之间。