DateTime.UtcNow 和 GETUTCDATE() 不一致

DateTime.UtcNow and GETUTCDATE() discrepancy

我们的生产服务器存在 C# DateTime.UtcNow 与 SQL 服务器的 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()返回的时间与服务器时间一致。

可能是什么原因造成的,我该如何解决?

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

总是会有细微的差异,但如此大的差异是由于一台或两台机器无法从 Internet 资源获取正确时间造成的。

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