【发布时间】:2020-01-18 22:24:36
【问题描述】:
我正在使用 Entity Framework Core 将两个日期时间变量保存到 SQL 数据库(托管在 Azure 中)表中。不知何故,当我在保存后查询数据库时,我注意到日期时间值发生了变化。您可以在下面看到保存之前的初始值。
保存后在数据库中显示如下
我通读了几份技术文档,以找出可能对此产生影响的因素。尽管如此,我还是没有发现任何有趣的东西。
能否请您帮助我了解这种数据更改背后的原因?我很确定没有任何存储过程或任何其他脚本可以更改这些日期。
// step 3: update tblStudent
var tblStudentEntityToUpdate = await _applicationDbContext.Value.StudentApplications.FirstOrDefaultAsync(x => x.StudentID == vm.StudentID);
vm.GuardianID = guardianId;
_applicationDbContext.Value.Entry(tblStudentEntityToUpdate).CurrentValues.SetValues(vm);
await _applicationDbContext.Value.SaveChangesAsync();
【问题讨论】:
-
您保存的 DateTime 似乎将
.Kind设置为.Local。根据第二个屏幕截图中的标记,您在 AEST 的澳大利亚,Azure 正在将其转换为 UTC,减去 10 小时。 -
是的,你是对的。我在澳大利亚。我应该如何避免这种自动转换?我没有使用 Azure 的经验
-
以 UTC 格式存储日期?这基本上是相同的日期/时间。
标签: c# sql-server date datetime entity-framework-core