边界值是否适用于 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中文网其他相关文章!