c# - SQL 不通过 EF 保存 DateTime 的时间

标签 c# sql entity-framework datetime

我正在使用 EF 来保存日期时间。

日期正在保存到数据库中,但不是时间。我正在使用 date 类型。但是SSMS(2012 express)字段只显示dd/MM/yyyy(没有时间)

读回它的内容类似于 26/07/2014 00:00:00

我假设它显示的是 00:00:00,因为这是它的保存方式(尽管没有显示)。

为了保存条目,我只是为我的属性分配了一个 DateTime。

myEfModel.Date = DateTime.Now;

我也尝试过(以确保位数不会在保存时混淆 SQL)

var timeNow = DateTime.Now;
timeNow.AddMilliseconds(-timeNow.Millisecond);
myEfModel.Date LastUsed = timeNow;

SO 上的搜索显示大多数人声称他们通过 EF 保存 DateTime.Now 没有问题

为什么不节省时间?

最佳答案

SQL Server 2012 中的 DATE 数据类型专门保存仅日期(没有时间)——这是一个特性 不是错误....(DATE 数据类型是在 SQL Server 2008 中引入的,专门用于当您只关心日期时使用,例如“雇用日期”或类似的东西,当时间部分通常只会妨碍您。

参见 MSDN documentation Date and Time Data Types在 SQL Serer 联机丛书中了解更多详细信息....

如果您也需要时间,请在数据库表中使用 DATETIME2(n)(其中 n 的值可以介于 0 和 7 之间,并定义有多少您需要小数点后第二位;0 = 精确到秒,7 = 精确到 100ns)

关于c# - SQL 不通过 EF 保存 DateTime 的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24968597/

相关文章:

c# - 在 Visual Studio Proff 中调试 native 代码

sql - postgresql中trunc函数的替代

java - 如何修复在 Jboss 域模式下部署应用程序对数据库的重复插入?

c# - 如何在 linq 中编写 EF 以包含小写比较

c# - 迁移 : Modifying a column with the 'Identity' pattern is not supported. 列 : 'CreatedAt' . 时 CodeFirst Seed 中出现错误

c# - 为什么当找到多个元素时Single()不直接返回?

C# OpenFileDialog 线程启动但未显示对话框

c# - Unity 中的鼠标弹起与触摸弹起

sql动态累积和 - SQL Server

c# - SQL 创建触发器命令通过 MySQL Workbench 运行良好,但通过 Entity Framework 调用时出错