日付を比較するSQLServer 2005のSPの一部のT-SQLに問題があります。私はC#からADO.Netでストアドプロシージャを実行しています。ネイティブのC#datetimeデータ型を渡しています(これは私の問題ですが、範囲が少し違うことがわかります)。私は私のSPで2つのDateTime値を比較するために次のことを行います。SQL Server 2005の比較日付
CREATE PROCEDURE [dbo].[spGetLikelyMatchedIndividuals_v1]
@ID BIGINT = NULL,
@DOB DATETIME = NULL, ...
WHERE ISNULL(CONVERT(CHAR(8),Ind.[DateOfBirth],112),'') = ISNULL(CONVERT(CHAR(8),@DOB,112),'')
これはほとんどの場合は問題なく動作しますが、何らかの理由でDatetimeで失敗することがあります。これは失敗するdatetime値の1つです:
1925-07-04
これはなぜ失敗する可能性がありますか?また、時間の成分なしで2つの日付の値を比較する最良の方法は何ですか?
エラーはどうなりますか?あなたもそれを提供できますか? – anishMarokey
エラーは全くありません。日付を機械ではなく:-(SQLServer Managment StudioからSPを実行し、日時の値を国際日付として入力すると、datepartsと混同していると考えられました。 – StarSignLeo
私はちょうど次のC#でこれをチェックします: DOB =新しいDateTime(DOB.Value.Year、DOB.Value.Month、DOB.Value.Day); 正しい月の部分と日の部分 – StarSignLeo