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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-31 21:40:10400ブラウズ

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

SQL Server での特定の日付より後の日付のクエリ

指定された日付より後の日付のレコードを取得しようとすると、クエリで問題が発生する可能性があります。たとえば、次のようなクエリ:

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

A.Date の形式は 2010-03-04 00:00:00.000 であり、予期した結果が得られない可能性があります。

この問題を解決するには、Convert 関数を使用して日付式を適切な日時形式に変換することが重要です。正しい構文は次のとおりです。

SELECT *  
FROM dbo.March2010 A 
WHERE A.Date >= Convert(datetime, '2010-04-01' )

この理由は、数式を使用する場合、SQL Server が日付値を数値として扱うため、誤った比較が行われるためです。日付を datetime に変換すると、比較が正しく行われることが保証されます。

SQL Server では次のような単一引用符を使用した暗黙的な変換が可能ですが、

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

これは可読性が低く、質も低いと考えられます。明示的な変換方法よりも信頼性が高くなります。明示的な変換により、ユーザー設定や現在のシステム日付に関係なく、日付が適切に処理されます。

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

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