ホームページ > データベース > mysql チュートリアル > SQL Server で日付部分のみを使用して日時値を効率的に比較するにはどうすればよいですか?

SQL Server で日付部分のみを使用して日時値を効率的に比較するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-05 14:41:40
オリジナル
1010 人が閲覧しました

How to Efficiently Compare Datetime Values with Only the Date Part in SQL Server?

SQL Server の日付のみと日時値を比較する

特定の日に作成されたレコードについてデータベースにクエリを実行する場合は、次の点を考慮することが重要です。列の日時の性質。等号演算子を使用して日時フィールドを日付部分のみと比較すると (例: U.DateCreated = '2014-02-07')、予期した結果が返されない場合があります。

解決策 1: 日付範囲を使用する

日時フィールドと日付部分のみを正確に比較するには、日付を使用しますrange:

Select * from [User] U
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
ログイン後にコピー

このアプローチにより、時刻コンポーネントに関係なく、'2014-02-07' に作成されたレコードが確実に取得されます。

WHERE 句の関数を回避する理由

で関数 (変換など) を使用することはお勧めできません。 WHERE 句を使用する主な理由は次の 2 つです:

  1. インデックス最適化の損失: データに対する関数により、オプティマイザがインデックスを使用できなくなり、クエリが遅くなる可能性があります。
  2. 高い計算オーバーヘッド: 関数を適用すると、かなりの計算オーバーヘッドが発生する可能性があります。大規模なデータセット。

日付範囲のベスト プラクティス

日付と時刻の範囲をクエリするときに最適なパフォーマンスと精度を得るには、次の形式を使用することをお勧めします。 :

WHERE col >= '20120101' AND col < '20120201'
ログイン後にコピー

以上がSQL Server で日付部分のみを使用して日時値を効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート