Sql server 如何在数据库(sqlserver)asp.net内核中添加时间部分
在asp.net核心MVC应用程序中,我们得到了一个DateTime字段LastUpdate。在sqlserver中,字段的类型是datetime。如果我们在数据库中设置了时间(和日期),信息会正确显示,但在升级之后,时间部分总是设置为零。代码如下所示:Sql server 如何在数据库(sqlserver)asp.net内核中添加时间部分,sql-server,asp.net-mvc,asp.net-core,Sql Server,Asp.net Mvc,Asp.net Core,在asp.net核心MVC应用程序中,我们得到了一个DateTime字段LastUpdate。在sqlserver中,字段的类型是datetime。如果我们在数据库中设置了时间(和日期),信息会正确显示,但在升级之后,时间部分总是设置为零。代码如下所示: [DataType(DataType.DateTime)] public DateTime LastUpdated { get; set; } object.LastUpdated = DateTime.UtcNow; context.Upd
[DataType(DataType.DateTime)]
public DateTime LastUpdated { get; set; }
object.LastUpdated = DateTime.UtcNow;
context.Update(object);
谢谢你的帮助 阅读c#代码,我认为问题基本上在于UTC函数的使用,因为在您的表中,数据类型是datetime而不是datetimeoffset,否则,在c#中,您试图发送UTC数据,只是为了测试我的建议,将其更改为
[DataType(DataType.DateTime)]
public DateTime LastUpdated { get; set; }
object.LastUpdated = DateTime.Now;
context.Update(object);
阅读c#代码,我认为问题基本上在于UTC函数的使用,因为在您的表中,数据类型是datetime而不是datetimeoffset,否则,在c#中,您试图发送UTC数据,只是为了测试我的建议,将其更改为
[DataType(DataType.DateTime)]
public DateTime LastUpdated { get; set; }
object.LastUpdated = DateTime.Now;
context.Update(object);
数据库类型为Date,已更改为DataTime,但更改是手动进行的,我们错过了:
entity.Property(e => e.LastUpdated).HasColumnType("date");
应该是:
entity.Property(e => e.LastUpdated).HasColumnType("datetime");
克里斯普拉特和其他人,谢谢 数据库类型为Date,已更改为DataTime,但更改是手动进行的,我们错过了:
entity.Property(e => e.LastUpdated).HasColumnType("date");
应该是:
entity.Property(e => e.LastUpdated).HasColumnType("datetime");
克里斯普拉特和其他人,谢谢
对象中的值设置是否正确?什么类型的对象是上下文
?是的,值看起来正确,所有其他值(字符串、货币等)都正确存储。LastUpdated也会存储,但只存储日期部分。这里的代码本身就可以工作。问题是数据库列类型不知何故发生了更改,或者有其他一些代码在调整时间部分。@ChrisPratt数据库类型在日期时间之间(几天前)发生了更改,但没有达到预期效果(正如我们现在检测到的)。好吧,我相信现在一切都清楚了,如果投我反对票的人将其还原,这可能会很好:-)在对象中设置的值是否正确?什么类型的对象是上下文
?是的,值看起来正确,所有其他值(字符串、货币等)都正确存储。LastUpdated也会存储,但只存储日期部分。这里的代码本身就可以工作。问题是数据库列类型不知何故发生了更改,或者有其他一些代码在调整时间部分。@ChrisPratt数据库类型在日期时间之间(几天前)发生了更改,但没有达到预期效果(正如我们现在检测到的)。好吧,我相信现在一切都清楚了,如果让我投反对票的人恢复投票可能会很好:-)谢谢你的提示,但现在没有什么区别。Now和UtcNow都返回一个日期时间。快速确认的方法是添加一个格式化的日期,以确认问题是否在LastUpdated属性的分配中。SQL探查器显示时间部分未提供:[LastUpdated]=@p8,@p8='2019-03-15'很好,您是否使用DateTime.Now和DateTimeNowUTC以及格式化的harcoded值在SQL配置文件中测试了这两种情况?测试这3个选项谢谢提示,但是现在没有区别。Now和UtcNow都返回一个日期时间。快速确认的方法是添加一个格式化的日期,以确认问题是否在LastUpdated属性的分配中。SQL探查器显示时间部分未提供:[LastUpdated]=@p8,@p8='2019-03-15'很好,您是否使用DateTime.Now和DateTimeNowUTC以及格式化的harcoded值在SQL配置文件中测试了这两种情况?测试这3个选项