我使用下面的INSERT語句到現在插入到日期時間字段在SQL數據庫經將NOW插入到datetime中時出錯返回「將varchar數據類型轉換爲datetime數據類型導致超出範圍值。」
<%
varAlert = request.querystring("alertID")
varInspector = session("stUserid")
varDateRead = NOW
dim sqlalerts
Set con = Server.CreateObject("ADODB.Connection")
con.Open MM_inspections_STRING
sqlalerts = "INSERT INTO dbo.tbl_AlertsRead (alertID, inspectorID, dateread) VALUES ('" & varAlert & "' ,'" & varInspector & "','" & varDateRead & "')"
con.Execute sqlalerts
con.Close
Set con = Nothing
%>
,但它的返回:
Microsoft OLE DB提供程序的ODBC驅動程序錯誤 '80040e07'
[Microsoft] [SQL Server Native Client 10.0] [SQL Server]將varchar數據類型轉換爲日期時間數據類型導致超出範圍的值。
/html/admin/inspectorsAlertView.asp 25行
線25是執行語句,很茫然,現在返回一個有效的日期時間,和現場「dateread」絕對是一個日期時間字段,上面的插入已經工作了幾十次沒有問題。
爲什麼不讓數據庫插入當前日期?而不是從你的前端傳入一個值,對於插入語句的那部分,使用'CURRENT_TIMESTAMP'或'GetDate()'。 – Bridge
我需要從前端插入它,因爲我需要該字段保持NULL,直到最終用戶讀取警報,並且還有其他日期時間字段(GetDate()作爲默認值)在表中在最終用戶讀取警報之前插入或更新,並且我不希望它在初始插入運行時更新日期讀取字段。 –