ホームページ >データベース >mysql チュートリアル >SQL Server で指定された日付より後の日付を正しくクエリする方法

SQL Server で指定された日付より後の日付を正しくクエリする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-26 01:24:14736ブラウズ

How to Correctly Query for Dates Greater Than a Specified Date in SQL Server?

SQL Server での日付比較: 指定された日付よりも大きい日付のクエリ

SQL Server では、クエリには日付の比較が含まれることが多く、フィルタリングして特定の日付を取得します。データ。特定の日付よりも大きい日付をクエリしようとする場合、日付形式を正しく処理することが重要です。

次のクエリを考えてみましょう:

SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;

ここで、A.Date は ' 形式で表されます。 2010-03-04 00:00:00.000」。ただし、このクエリは予期した結果を返さない可能性があります。

この問題の原因は、2010-04-01 という式の解釈にあります。 SQL Server では、日付値が一重引用符で囲まれていない場合、数学的計算が実行されます。 2010 から 4 と 1 を引くと 2005 が得られますが、これは意図した比較値ではありません。

この問題を解決するには、Convert 関数を使用して式を明示的に日時データ型に変換する必要があります。修正されたクエリは次のとおりです。

select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )

クエリは日付を正しく比較し、A.Date 値が '2010-04-01' 以上であるレコードを返します。

以上がSQL Server で指定された日付より後の日付を正しくクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。