DateTime フィールドを持つ LINQ を使用してレコードを取得すると、ToString() しか使用できません。
他のすべての DateTime メソッドはどこにありますか?
Convert.ToDateTime を DateTime にする必要がありますか? フィールドが返すこと?
(DateTime) と (DateTime?) の違いは何ですか?
DateTime?
を意味する場合は、プロパティを介して値をNullable<DateTime>
取得できます。DateTime
DateTime?.
Value
SQL では、DateTime を null にすることができます。C# では、DateTimes を null にすることはできません。null 許容値の型について少し読むことができます。値型の変数を null にすることはできないため、この状況を処理するためにジェネリック クラスが作成されました。Nullable<> と呼ばれ、タイプの後に疑問符を付けて記述するのが一般的です。
これらの値を使用するには、.HasValue プロパティを確認する必要があります。オブジェクトに値があるか、null かを知るブール値です。.HasValue プロパティが true であることを確認したら、.Value プロパティを安全に使用できます。.Value プロパティは DateTime 型になります。
SQL では、DateTime フィールドが [Allow Null] に設定されています。次に、LINQ では、フィールドにアクセスしようとすると、.NET はフィールドが実際に日付であるかどうかを認識しません。そのため、日付メソッドが使用可能になる前に Convert.ToDateTime() を実行する必要があります。
フィールドに常に日付が含まれる場合は、データベース列を NOT NULL に設定すれば問題ありません。
名前空間の競合はさておき、SQL の datetime は C# の datetime とは異なるエポック (したがって、有効な日付の範囲も異なる) を持っていることはわかっています。
new DateTime()
をストアド プロシージャに送信してみて、意味を確認してください。