SQL不通过EF保存DateTime的时间

时间:2014-07-26 07:17:04

标签: 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显示大多数人声称they have no problems saving DateTime.Now via EF

为什么不节省时间?

1 个答案:

答案 0 :(得分:7)

SQL Server 2012 中的DATE数据类型专门保存仅日期(没有时间) - 它功能不是bug ....(DATE数据类型是在SQL Server 2008中引入的,专门用于您只关心日期,例如"雇用日期"或类似的事情,当时间部分通常只会妨碍你。)

有关详细信息,请参阅SQL Serer联机丛书中的MSDN documentation Date and Time Data Types ....

如果您还需要时间,请在数据库表中使用DATETIME2(n)n的值可以在0到7之间,并定义您需要的小数秒小数点; 0 =精度到秒,7 =精度到100ns)