2015-04-12 75 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