2015-04-12 197 views
1

我们的生产服务器有一个问题,C#DateTime.UtcNow不通过约27秒的SQL Server的GETUTCDATE()排队:DateTime.UtcNow和GETUTCDATE()差异

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()时返回的时间与服务器时间一致。

什么可能导致这种情况,我该如何解决它?

+0

ajbeaven:当你说“直接在产品服务器上运行GETDATE()时返回的时间与服务器时间一致。”你的意思是'GETDATE()'也是关闭了27秒,或者它不像'GETUTCDATE()'是 – DWright

+0

这个问题可能更适合[Server Fault](http://serverfault.com/ ) – AlphaDelta

+2

两台计算机上的系统时钟未同步。 –

回答

3

运行C#代码的机器和运行SQL Server的计算机在系统时钟方面有所不同。

总会有一些细微的差别,但是一个或两个机器无法从互联网源获得正确的时间所造成的差异。

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

+0

Doh,忘记了什么服务器是构建服务器! – ajbeaven