首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中正確配對僅日期查詢與日期時間欄位?

如何在 SQL Server 中正確配對僅日期查詢與日期時間欄位?

Mary-Kate Olsen
發布: 2025-01-04 12:17:35
原創
532 人瀏覽過

How to Correctly Match Date-Only Queries with DateTime Fields in SQL Server?

將僅日期查詢與SQL Server 中的日期時間欄位相符

使用僅日期值查詢SQL Server 中的日期時間欄位時,這是必不可少的了解其含義以確保結果準確。

在提供的內容中範例:

Select * from [User] U
where  U.DateCreated = '2014-02-07'
登入後複製

如果使用者是在「2014-02-07 12:30:47.220」建立的,則查詢將不會傳回任何結果,因為它只比較精確的日期時間值。

推薦方法

解決此問題並準確匹配帶有日期時間字段的僅限日期值,建議使用以下方法:

Select * from [User] U 
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
登入後複製

此查詢指定一個範圍,其中包含日期時間值為“2014-02-07”或之後但之前的所有記錄'2014-02-08.'

SARGable謂詞的重要性和避免函數

在將日期時間值與僅日期條件進行比較時,避免在 where 子句中使用諸如 Convert() 之類的函數至關重要。這可能會阻礙索引的使用、減慢查詢速度並引入不必要的計算。相反,修改查詢以適應資料(也稱為使用 SARGable 謂詞)可以增強查詢效能。

日期範圍查詢的最佳實務

此外,建議查詢日期範圍時避免使用 BETWEEN 運算子。相反,請使用以下形式以獲得最佳結果:

WHERE col >= '20120101' AND col < '20120201'
登入後複製

此方法可確保與所有資料類型和精確度的兼容性,並消除日期時間值的時間部分的潛在問題。

以上是如何在 SQL Server 中正確配對僅日期查詢與日期時間欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板