2012-12-14 165 views
1

我有下面的查詢,給出了一個錯誤,即將char數據類型轉換爲datetime數據類型導致超出範圍的日期時間值。char數據類型轉換爲日期時間數據類型導致超出日期時間值

INSERT INTO帳戶(DocumentNo,ACCNO,交貨期,[說明],DC,金額,Amount1, AMOUNT2,dateCreated會,DateModified,[類型])VALUES(40,6000012,'14/12/2012 12 :00:00 AM', N'',N'C',365.70,551292.750000000,365.700000000,'14/12/2012 12:00:00 AM','14/12/2012 12:00:00 AM ',N'PI')

無法知道究竟是什麼錯誤。

我怎麼解決這個問題?

在此先感謝。

回答

2

'14/12/2012'是大多數服務器上第14個月的第12天。你將不得不使用正確的格式規範來表示日期,或者更好(但只在應用程序代碼中):只將它作爲參數傳遞,在調用代碼中使用日期的自然表示(然後永遠不會有任何字符串代表性,所以它從不含糊)。

使得它非常明確的同時向服務器和人類讀者的另一種方法是這樣的:

'14 Dec 2012 12:00:00 AM' 
0

您使用的是模糊的日期時間格式,併爲您的區域設置的默認值意味着它不是接受它。嘗試:

INSERT INTO ACCount (DocumentNo, AccNo, DueDate, [Description], DC, Amount, 
     Amount1, Amount2, DateCreated, DateModified, [Type]) 
VALUES (40, 6000012, '2012-12-14T12:00:00 AM', N'', N'C', 365.70, 551292.750000000, 
     365.700000000, '2012-12-14T12:00:00 AM', '2012-12-14T12:00:00 AM', N'PI') 

當然,考慮到時間的組件都是午夜,你可能更願意只使用20121214(這是一個明確的日期只有格式)

相關問題