11

DateTime フィールドを持つ LINQ を使用してレコードを取得すると、ToString() しか使用できません。

他のすべての DateTime メソッドはどこにありますか?

Convert.ToDateTime を DateTime にする必要がありますか? フィールドが返すこと?

(DateTime) と (DateTime?) の違いは何ですか?

4

4 に答える 4

16

DateTime?を意味する場合は、プロパティを介して値をNullable<DateTime>取得できます。DateTimeDateTime?.Value

于 2008-10-04T03:08:20.350 に答える
9

SQL では、DateTime を null にすることができます。C# では、DateTimes を null にすることはできません。null 許容値の型について少し読むことができます。値型の変数を null にすることはできないため、この状況を処理するためにジェネリック クラスが作成されました。Nullable<> と呼ばれ、タイプの後に疑問符を付けて記述するのが一般的です。

これらの値を使用するには、.HasValue プロパティを確認する必要があります。オブジェクトに値があるか、null かを知るブール値です。.HasValue プロパティが true であることを確認したら、.Value プロパティを安全に使用できます。.Value プロパティは DateTime 型になります。

于 2008-10-04T03:27:17.910 に答える
2

SQL では、DateTime フィールドが [Allow Null] に設定されています。次に、LINQ では、フィールドにアクセスしようとすると、.NET はフィールドが実際に日付であるかどうかを認識しません。そのため、日付メソッドが使用可能になる前に Convert.ToDateTime() を実行する必要があります。

フィールドに常に日付が含まれる場合は、データベース列を NOT NULL に設定すれば問題ありません。

于 2008-10-04T03:45:42.117 に答える
0

名前空間の競合はさておき、SQL の datetime は C# の datetime とは異なるエポック (したがって、有効な日付の範囲も異なる) を持っていることはわかっています。

new DateTime()をストアド プロシージャに送信してみて、意味を確認してください。

于 2008-10-04T03:03:14.027 に答える