2012-04-05 37 views
0

我已經將StartDate作爲數據類型nvarcharyyyy/mm/dd存儲在我的數據庫中。當我嘗試將其投射到datetime時,我得到Arithematic Flow Error.在數據庫中的日期時間錯誤

這是什麼錯誤?我已經嘗試了castconvert方法,但仍然拋出錯誤。

這裏是我的代碼:

cast(Start_Date as datetime) && 
convert(datetime,Start_Date,103) 
+0

嗯。這個對我有用。 – 2012-04-05 07:53:19

+0

實際上我不是罪魁禍首。我們的pjt領導設計了數據庫,我被迫這樣做。現在的數據類型不能修改爲datetime – ksg 2012-04-05 07:54:38

+0

您能發佈一個**完整的**和可重複的SQL語句,它實際上給出了「算術流程錯誤」? – 2012-04-05 08:00:24

回答

2

看一看CAST and CONVERT

103dd/mm/yyyy所以這將失敗

declare @S varchar(10) 
set @S = '2012/03/31' 
select convert(datetime, @S, 103) 

嘗試,如果你有SET DATEFORMATdmy這個代替

select convert(datetime, replace(@S, '/', ''), 112) 

你投將失敗。

set dateformat dmy 

declare @S varchar(10) 
set @S = '2012/03/31' 
select cast(@S as datetime) 

但是如果你使用ymd,而不是將工作得很好。

0
declare @TestDateValue nvarchar(50) 
set @TestDateValue = '2012/12/03' 
select cast(@TestDateValue as datetime) as NewTestDateTime 

你的代碼應該可以工作。我剛剛在這裏舉了一個例子。你可以發佈你想要轉換的字符串嗎?可以成爲它的一部分。