首页 > 数据库 > mysql教程 > MS SQL Server 的'BETWEEN”运算符是包含还是排除?

MS SQL Server 的'BETWEEN”运算符是包含还是排除?

DDD
发布: 2024-12-27 21:41:14
原创
178 人浏览过

Is MS SQL Server's `BETWEEN` Operator Inclusive or Exclusive?

使用 MS SQL Server 的“BETWEEN”运算符进行包含范围检索

使用 MS SQL Server 的“BETWEEN”运算符时,必须了解是否范围边界包含或排除在选择标准中。

回答具体问题问题,“BETWEEN”运算符是包容性的。这意味着,默认情况下,指定为下限和上限的值包含在结果集中。在提供的示例中:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
登录后复制

查询将选择“foo”列的值在(并包括)5 和 10 之间的所有行。

但是,这种包含行为使用 DateTimes 时可能会提出警告。默认情况下,当仅指定日期时,SQL Server 会将其视为当天的午夜。这意味着,如果要捕获特定日期内的所有值,则必须从结束日期减去 3 毫秒,以避免丢失午夜前 3 毫秒内的数据。

例如,要检索以内的所有值2016 年 6 月,正确的查询为:

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
登录后复制

这可确保您捕获 2016 年 6 月内的所有值,包括属于 3 年内的值6 月 30 日午夜之前的毫秒。

需要注意的是,虽然对于大多数数据类型来说,“BETWEEN”运算符是包容性的,但也有例外。例如,对于“datetime2”和“datetimeoffset”数据类型,通常建议使用“>=”和“<”运算符而不是“BETWEEN”以避免潜在的范围截断问题。

以上是MS SQL Server 的'BETWEEN”运算符是包含还是排除?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板