2011-05-16 88 views
0

我的本地系統上有SQL Server Express 2008,我在datetime列中做了一些插入操作。SQL Server,奇怪的DATETIME行爲

的問題是,對生產託管在GoDaddy的(SQL Server 2005中)在同一系統記錄一個datetime條目前面的日期和13:00

例如時間插入日期爲07/01/2010 00:00:00

項在本地DB = 07/01/2010 00:00:00
進入正式​​發佈階段DB = 06/30/2010 13:00:00

難道是爲datetime存儲一些服務器/數據庫級別設置?

編輯1:

請注,我將預定datetime值,被插入的日期正好是07/01/2010 00:00:00。我不使用GETDATE()。

編輯2:解決方案

好了,謝謝你的答案的傢伙,但問題並沒有從SQL Server,它是從序列化數據集的XML格式讀取的數據。它發送的日期時間信息爲'mm/dd/yyyy T00:00:00 + 4:00'

我所做的只是從中刪除時間段,然後將其插入到數據庫中。

乾杯!

+1

看起來您的Production系統的時區設置比您本地系統晚了11個小時。 – Justin 2011-05-16 05:35:53

+0

您使用什麼代碼/客戶端來發送數據ODBC? 。淨? – gbn 2011-05-16 06:05:28

+2

在某些時候,無論是在儲存過程中,還是在讀取數據(或兩者)時,都會發生時區轉換。但是我們無法看到您的任何代碼能夠將您指向何處或何時發生。 – 2011-05-16 08:31:51

回答

0

時差讓我懷疑這是否是UTC的事情。你是通過SSMS還是通過應用程序代碼運行?

它總是在你的本地後面插入11個小時嗎?

這是您給列的明確時間還是列默認值(可能是GETUTCDATE())?

1
  • 您在迪拜= GMT + Y小時
  • GoDaddy的是美國= GMT-X小時

GETDATE()給出SQL服務器時間

您應該使用GETUTCDATE( )給予格林尼治標準時間(UTC,因爲我們失去了我們的帝國它出現),這將是全球一致的。

+0

嗨gbn,thx。請參閱我的問題補充說明。 – Storm 2011-05-16 05:49:38