首頁 >資料庫 >mysql教程 >MS SQL Server 的「BETWEEN」運算子是否包含邊界值?

MS SQL Server 的「BETWEEN」運算子是否包含邊界值?

Patricia Arquette
Patricia Arquette原創
2025-01-01 03:50:10767瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn