使用MS SQL Server 的「BETWEEN」運算子進行包含範圍擷取
使用MS SQL Server 的「BETWEEN」運算子時,必須了解是否範圍邊界包含或排除在選擇標準中。
回答具體問題問題,「BETWEEN」運算子是包容性的。這意味著,預設情況下,指定為下限和上限的值包含在結果集中。在提供的範例中:
SELECT foo FROM bar WHERE foo BETWEEN 5 AND 10
查詢將選擇「foo」列的值在(並包含)5 和 10 之間的所有行。
但是,這種包含行為使用 DateTimes 時可能會提出警告。預設情況下,當僅指定日期時,SQL Server 會將其視為當天的午夜。這意味著,如果要捕獲特定日期內的所有值,則必須從結束日期減去 3 毫秒,以避免丟失午夜前 3 毫秒內的資料。
例如,要檢索以內的所有值2016 年6 月,正確的查詢為:
where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
這可確保您捕獲2016 年6 月內的所有值,包括屬於3年內的值6 月30 日午夜之前的毫秒。
要注意的是,雖然對於大多數資料型別來說,「BETWEEN」運算子是包容性的,但也有例外。例如,對於「datetime2」和「datetimeoffset」資料類型,通常建議使用「>=」和「
以上是MS SQL Server 的「BETWEEN」運算子是包含還是排除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!