【发布时间】:2017-03-17 11:18:58
【问题描述】:
CreateDate(我的表中用于存储记录创建日期的字段)在我的表中存储为 nvarchar。在我的对象的 linq 中,我试图将相同的 CreateDate 解析为 DateTime 而不是字符串。为此,我尝试了:
var CompYear1 = (from p in C1Result where
DateTime.ParseExact(p.CreateDate, "MM/dd/yyyy hh:mm tt", null) >= Y1StartDate
//throws following error
字符串未被识别为有效的日期时间。
这里是CreateDate的例子
【问题讨论】:
-
导致错误的
p的值是多少? -
您确定
p.CreateDate中的日期格式正确吗?你能展示失败的示例值吗? -
"10/13/2014 3:31 PM"的格式不是"dd/MM/yyyy hh:mm:ss"。ParseExact确实意味着准确。 -
@David 做到了。格式应为“MM/dd/yyyy hh:mm tt”。也就是说,如果您有任何影响,我强烈建议您尝试将数据库类型从 varchar 更改为 datetime。
-
此 Linq 查询是否应用于您的 DB 对象或任何通用集合?当您尝试在 linq 查询 [On entity framework] 中操作数据时,我看到了错误,因为它使用不同的执行。
标签: c# asp.net-mvc linq asp.net-mvc-5