由於服務器上的日期格式,我的腳本失敗。分配給sql server 2000中的變量時的日期格式問題
declare @lastDay as datetime
declare @endDay as datetime
set @lastDay = '2012-07-12 18:00:00.000'
set @endDay = '2012-07-16 18:00:00.000'
Select getdate(), @lastDay, @endDay
在上面的代碼中,我分配的數據是(yyyy-mm-dd hh:mi:ss.mmm)格式。但是sqlserver把它當作(yyyy-dd-mm hh:mi:ss.mmm)。
但是,當使用(yyyy-mm-dd hh:mi:ss.mmm)格式的getdate()函數sql返回時。只有當我分配值時纔會出現問題。
相同的代碼在pc上工作正常,但在服務器上失敗。
結果我得到的服務器上面的代碼上是
2012-07-17 15:34:30.627 2012-12-07 18:00:00.000 NULL
與錯誤信息
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
我知道我可以使用轉換功能,但我幾百對DTS工作現在需要在服務器上進行安排,這對我來說並不是一個快速解決方案。
我想我需要改變服務器上的一些設置,默認情況下考慮(yyyy-mm-dd hh:mi:ss.mmm)。如果有人知道解決方案來解決這個問題,請幫助我。
檢查服務器的區域設置,也許?在我的2008r2安裝中嘗試了這一點,日期如預期的那樣回到了y-m-d,而不是y-d-m。 – 2012-07-17 15:04:25
@ murty是否在未登錄到機器時測試新接受的答案?我對使用模糊格式的日期對這個和其他服務器非常小心,在這些服務器上您可能無法控制區域設置,並且可能無法讓用戶全天候保持登錄狀態。 – 2012-07-19 15:27:24