2010-11-10 20 views
2

嗨 我收到一個錯誤 '轉換日期和/或時間從字符串轉換失敗' 使用EF4調用存儲過程時。實體框架存儲過程出錯DateTime

我從我的C#經過2 DateTime是否喜歡這個

@沒有fromdate = '2010-11-10 12:30:14.2558729' @ TODATE = '2010-11-10 12:30:15.1169590'

如何防止此錯誤?

,如果我這樣做在我的UI它的工作原理

FromDate = new DateTime (SelectedFromDate.Year,SelectedFromDate.Month,SelectedFromDate.Day), 
ToDate = new DateTime(SelectedToDate.Year, SelectedToDate.Month, SelectedToDate.Day), 

感謝您的任何建議

回答

0

減少對小數秒位數爲三個。試試吧......

你正在嘗試做的事:

select convert(datetime,'2010-11-10 12:30:14.2558729') 
--           ^^^^^^^ 

OUTPUT:

----------------------- 
Msg 241, Level 16, State 1, Line 1 
Conversion failed when converting datetime from character string. 

僅使用3個十進制數字:

select convert(datetime,'2010-11-10 12:30:14.255') 
--           ^^^ 

OUTPUT:

----------------------- 
2010-11-10 12:30:14.257 

(1 row(s) affected) 
+0

在sql中工作,但我怎麼做在SP中,如果我通過2參數@FromDate和@ ToDate.If在給予機會轉換它之前失敗 – user9969 2010-11-10 13:55:12

+0

在調用存儲過程之前使C#中的字符串更短或有存儲過程參數數據類型爲varchar(27),然後將輸入參數的前23個字符存儲爲'datetime'類型的局部變量,如:'DECLARE @FromDate_D datetime; set @ FromDate_D = LEFT(@ FromDate,23)',其中@FromDate是您的varchar(27)輸入參數。 – 2010-11-10 14:14:56