当我使用具有日期时间字段的 LINQ 检索记录时,只有 ToString() 可用。
所有其他日期时间方法在哪里?
我必须转换日期时间日期时间? 字段返回
?(日期时间)和(日期时间)有什么区别?
如果DateTime?
是指Nullable<DateTime>
,那么您可以通过 DateTime?.
Value
属性获取DateTime
值。
在 SQL 中,DateTimes 允许为空。在 C# 中,日期时间不能为空。您可以阅读一些有关可为空的值类型的信息。由于值类型变量不能为 null,因此创建了一个泛型类来处理这种情况。它称为 Nullable<>通常在类型后用问号书写。
为了使用这些值,您需要检查 .具有值属性。它是一个布尔值,知道对象中是否有值或为空。检查 .属性为 true,您可以安全地使用 .值属性。这。值属性的类型为日期时间。
在 SQL 中,将"日期时间"字段设置为"允许空"。 然后在 LINQ 中,当您要访问该字段时,.NET 不知道该字段是否真的是日期,这就是为什么您必须在任何日期方法可用之前使用 Convert.ToDateTime() 的原因。
如果该字段始终包含日期,请将数据库列设置为 NOT NULL,您应该没问题。
撇开命名空间冲突不谈,我知道 SQL 的 datetime 与 C# datetime 具有不同的纪元(因此有效日期范围也不同)。
尝试将new DateTime()
发送到存储过程,并了解我的意思。