与 <= 和 >= 之间的区别
Difference Between Between and <= & >=
我需要在两个日期间隔之间取日期。
我试过如下两个查询
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'.
两者 Returns 结果相同。我以为
between
将 return 只有介于输入值之间的值并排除输入值。那是对的吗?。如果两者相同,性能上哪个更可行?
考虑片段:
SELECT * FROM list_of_integers_from_1_to_100 AS table
WHERE table.number BETWEEN 2 AND 80;
此方法比 "table.number >= 2 AND table.number <= 80" 更易读。 BETWEEN 将 return 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
我需要在两个日期间隔之间取日期。
我试过如下两个查询
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'.
两者 Returns 结果相同。我以为
between
将 return 只有介于输入值之间的值并排除输入值。那是对的吗?。如果两者相同,性能上哪个更可行?
考虑片段:
SELECT * FROM list_of_integers_from_1_to_100 AS table
WHERE table.number BETWEEN 2 AND 80;
此方法比 "table.number >= 2 AND table.number <= 80" 更易读。 BETWEEN 将 return 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