首页 > 数据库 > mysql教程 > MS SQL Server 的'BETWEEN”运算符是否包含边界值?

MS SQL Server 的'BETWEEN”运算符是否包含边界值?

Patricia Arquette
发布: 2025-01-01 03:50:10
原创
752 人浏览过

Does MS SQL Server's `BETWEEN` Operator Include the Boundary Values?

MS SQL Server 的“BETWEEN”运算符的包容性

MS SQL Server 的 BETWEEN 运算符是否包含范围边界?换句话说,以下查询是否:

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

选择恰好为 5 和 10 的值,或者这些值是否被排除在范围之外?

答案:

MS SQL Server 中的 BETWEEN 运算符是包容性的,这意味着它包括指定范围内的起始值和结束值。因此,上面的查询将选择 foo 列的值介于 5 和 10 之间的行。

From Books Online:

BETWEEN 如果以下值返回 TRUE test_expression 大于或等于 begin_expression 的值且小于或等于end_expression.

日期时间警告:

使用日期时间时,请务必注意,如果仅提供日期,则该值将被视为当天的午夜。为了避免结束日期内丢失时间或重复捕获第二天的数据,建议从结束日期减去 3 毫秒。这是因为任何小于 3 毫秒的值都会四舍五入到第二天的午夜。

示例:

要获取 2016 年 6 月内的所有值,请使用以下命令查询:

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

这翻译过来to:

where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
登录后复制

datetime2 和 datetimeoffset:

从日期中减去 3 毫秒可能会导致 3 毫秒窗口中丢失行。最有效的解决方案是使用以下运算符:

where myDateTime >= '20160601' AND myDateTime < '20160701'
登录后复制

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

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