DATETIME および DATE の比較で時刻部分を無視する
多くのシナリオでは、時刻の構成要素を無視して日付と時刻を比較する必要があります。 DATETIME2(0) 型の [date] 列を含む 2 つのテーブルがあるシナリオを考えてみましょう。目的は、時間要素 (時間、分、秒) を除外し、日付部分 (日、月、年) のみに基づいて 2 つのレコードを比較することです。
これを実現するために、SQL Server 2008 は以下を提供します。 CAST 演算子を使用したシンプルかつ効果的なソリューションです。 DATETIME2 列を DATE データ型にキャストすると、時間情報は事実上破棄されます。これにより、フィールドの日付部分間の直接比較が可能になります。
たとえば、2 つのレコードが同じ日付を持つかどうかを判断するには、次の構文を使用できます。
IF CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)
この例では、コードでは、CAST 演算子は DateField1 と DateField2 の両方を DATE データ型に変換し、日付コンポーネントのみが比較されるようにします。日付が同じ場合、IF ステートメントは true と評価されます。それ以外の場合は false と評価されます。
CAST 演算子を利用すると、DATETIME 列の日付コンポーネントを簡単に分離し、日付のみに基づいて正確な比較を実行できます。この手法は、履歴データ、時間に敏感な計算、または時間の精度が関係ないシナリオを扱う場合に特に役立ちます。
以上がSQL Server で時間コンポーネントを無視して日付を比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。