DateTime.UtcNow和GETUTCDATE()差异

时间:2015-04-12 23:07:01

标签: c# sql-server datetime dapper

我们的生产服务器存在一个问题,即C#DateTime.UtcNow与SQL Server的GETUTCDATE()排队约27秒:

Console.WriteLine("C# UTC Date: " + DateTime.UtcNow);
Console.WriteLine("DB UTC Date: " + Connection.Query<DateTime>("SELECT GETUTCDATE()").Single());

C# UTC Date: 4/12/2015 10:47:54 PM 
DB UTC Date: 4/12/2015 10:48:21 PM

在本地计算机上正确运行相同的代码会显示相同的时间。

直接在产品服务器上运行GETDATE()时返回的时间与服务器时间对齐。

可能导致这种情况的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

运行C#代码的机器和运行SQL Server的机器在系统时钟方面存在差异。

总是会有轻微的差别,但是这样的差异是由于一台或两台机器无法从互联网来源获得正确的时间造成的。

在“日期和时间”设置中,在“Internet时间”选项卡中,您可以找到从Internet源获取时间的设置,您将看到服务器上次设置获取更新的时间。如果选择的时间服务器无法正常工作,请选择其他时间服务器。