我需要在两个日期间隔之间选择日期。
我尝试了两个查询,如下所示
SELECT * FROM [dbo].[BudgetOffice] BUD
where Week BETWEEN '2015-08-03' AND '2015-08-03'.
SELECT * FROM [dbo].[BudgetOffice] BUD
where Week >= '2015-08-03' AND Week <= '2015-08-03'.
两者都返回相同的结果。我以为
between
将仅返回输入值之间的值并排除输入值。那是对的吗?。如果两者相同,那么性能更可行。?
答案 0 :(得分:0)
考虑代码段:
SELECT * FROM list_of_integers_from_1_to_100 AS table
WHERE table.number BETWEEN 2 AND 80;
这种方法比“table.number&gt; = 2 AND table.number&lt; = 80”更具可读性。 BETWEEN将返回2到80之间的所有值(包括两个数字),这实际上是相同的。
性能方面,据我所知,没有重大差异。
BETWEEN有几个很好的事情比使用运算符更简单。考虑:
table.number NOT BETWEEN 2 AND 80
和
table.number < 2 AND table.number > 80
乍一看哪一个更容易?我投票支持第一个,但最终完全可以选择使用哪一个。
另外,正如top answer in this question中所指出的,BETWEEN可以帮助您避免不必要的评估。我将从该主题中复制粘贴代码段:
SELECT AVG(RAND(20091225) BETWEEN 0.2 AND 0.4)
FROM t_source;
---
0.1998
SELECT AVG(RAND(20091225) >= 0.2 AND RAND(20091225) <= 0.4)
FROM t_source;
---
0.3199