2012-11-13 45 views
1

我使用下面的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」絕對是一個日期時間字段,上面的插入已經工作了幾十次沒有問題。

+0

爲什麼不讓數據庫插入當前日期?而不是從你的前端傳入一個值,對於插入語句的那部分,使用'CURRENT_TIMESTAMP'或'GetDate()'。 – Bridge

+0

我需要從前端插入它,因爲我需要該字段保持NULL,直到最終用戶讀取警報,並且還有其他日期時間字段(GetDate()作爲默認值)在表中在最終用戶讀取警報之前插入或更新,並且我不希望它在初始插入運行時更新日期讀取字段。 –

回答

2

今天是11月13日 - 在英國將寫作13/11/2012,但在美國它將是11/13/2012。我想你會以錯誤的格式插入日期 - 這意味着你正在嘗試使用第13個月。

我懷疑這個工作之前,因爲你的日期將是有效的,但不正確的值存儲在您的數據庫。檢查您的數據庫中以前插入的值。

+0

得到它的sussed就像你張貼,非常感謝:) –

相關問題