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

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

Patricia Arquette
Patricia Arquette原创
2024-12-26 14:20:12666浏览

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

边界值是否适用于 MS SQL Server 的“ Between”运算符?

MS SQL Server 中的“ Between”运算符是包容性的,如在线图书中定义。这意味着大于或等于下限(“begin_expression”)且小于或等于上限(“end_expression”)的值将包含在结果集中。

例如,以下查询将选择“foo”列包含 5 到 10 之间的值的所有行,包括:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10

DateTime注意事项

使用 DateTime 值时,请务必注意,在“之间”比较中仅考虑日期部分。为了确保结果准确,您必须为结束日期指定午夜前 3 毫秒的时间分量。这可以防止结束日期范围内的值出现任何数据丢失或重复。

例如,要检索“myDateTime”列包含 2016 年 6 月内的值的所有行,您可以使用以下查询:

WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')

Datetime2 和 Datetimeoffset 操作

改为减去 3 毫秒,建议在使用 datetime2 或 datetimeoffset 数据类型时使用以下更简单、更准确的方法:

WHERE myDateTime >= '20160601' AND myDateTime < '20160701'

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn