首頁 > 資料庫 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板