我正在執行從ASP窗體插入到我的服務器上的數據庫的新行。錯誤現在插入()到日期時間字段(SQL Server 2005 9.0.5057)
當我看到在服務器中的條目,它看起來好像他們實際上增加,但它確實在執行行停止所有功能:
With
.Parameters(@blahblah) = Request.Form("blahblah")
.Parameters("@lastUpdate") = Now()
...
.Execute
End With
這是我得到的錯誤:
Microsoft OLE DB提供程序的ODBC驅動程序80040e07
[微軟] [ODBC SQL Server驅動程序] [SQL服務器]一個char數據類型到datetime數據類型的轉換導致超範圍外datetime VALU e./results.asp217
被添加的條目具有在列中的日期爲:
2011-11-28 15:52:13.000
我有一個感覺這是我在印象之下只有在使用DateTime2 SQL字段時出現的毫秒數。
有幾件事情我已經沒有運氣研究後嘗試:
- 添加「Session.LCID = 2057」 - 一些SQL服務器有英國或美國的設置,這將覆蓋用戶設置
- 嘗試一些不同的日期格式,如FormatDateTime(Now(),0 - 5)
- 我可以使用'On Error Resume Next',但我寧願糾正。
任何幫助表示讚賞。
你能告訴我們更多的代碼,特別是你建立一個sql命令並添加一個參數的方式。 –
什麼是數據庫數據類型?你有沒有確認你的代碼不是按照「錯誤」順序(美國和英國的日期)寫日期?你可以寫你的datetime爲Now.ToString(「yyyy-MM-dd HH:mm:ss」)嗎? –
@Miika L. - 查看我對'Adding'Session.LCID = 2057'(區域設置ID)的評論 - 這是確保日期以正確格式傳遞的原因。 ToString()也是在vbscript中的CStr()。數據庫數據類型是datetime(不是datetime2)。 –