2017-07-26 116 views
1

我發現一個存儲過程在我的開發SQL Server上工作,但不在我的臨時SQL Server上。 我發現問題是試圖存儲一個日期,這2個SQL Server響應不同。 所以我已經隔離了SQL代碼的問題。 在發展我的時間字段是好的,但不是分期:日期格式的SQL Server不匹配

enter image description here

enter image description here

我需要知道如何讓這些2個數據庫服務器相互匹配的日期時間格式。

+0

爲什麼不將日期時間傳遞給存儲過程? –

回答

2

檢查暫存計算機的區域設置。我敢打賭,它被設置爲使用YYYY/DD/MM作爲默認日期格式,所以它認爲你試圖在本月使用26,這將超出範圍。

+0

是的,這是一個答案:https://meta.stackoverflow.com/questions/318020/so-this-is-an-answer –

+0

我發現我的開發SQL Server設置爲美國英語和另一臺服務器設置爲英國。真的2應該是一致的,但如果這樣做的話,現有數據的後果是什麼?如何? – arame3333

+0

如果更改這些設置,現有數據將不會更改。但是,如果用戶不知道此設置並輸入不會觸發超出範圍的異常的數據(如「2017/07/01」),表格中可能存在不正確的數據。也許這將是從生產中刷新兩臺服務器的好時機。 :) –

2

您需要更改DATEFORMAT配置才能正常工作。使用以下內容:

Set DateFormat YMD 

Declare @Logged DateTime 
Set @Logged = N'2017/07/26 11:32:01.161' 

Select @Logged 
+0

這將對此問題進行編碼,但不是關於如何更改服務器以便與Dev服務器的行爲相匹配的問題? –