我已經將StartDate
作爲數據類型nvarchar
以yyyy/mm/dd存儲在我的數據庫中。當我嘗試將其投射到datetime
時,我得到Arithematic Flow Error.
在數據庫中的日期時間錯誤
這是什麼錯誤?我已經嘗試了cast
和convert
方法,但仍然拋出錯誤。
這裏是我的代碼:
cast(Start_Date as datetime) &&
convert(datetime,Start_Date,103)
我已經將StartDate
作爲數據類型nvarchar
以yyyy/mm/dd存儲在我的數據庫中。當我嘗試將其投射到datetime
時,我得到Arithematic Flow Error.
在數據庫中的日期時間錯誤
這是什麼錯誤?我已經嘗試了cast
和convert
方法,但仍然拋出錯誤。
這裏是我的代碼:
cast(Start_Date as datetime) &&
convert(datetime,Start_Date,103)
看一看CAST and CONVERT。
103
是dd/mm/yyyy
所以這將失敗
declare @S varchar(10)
set @S = '2012/03/31'
select convert(datetime, @S, 103)
嘗試,如果你有SET DATEFORMAT爲dmy
這個代替
select convert(datetime, replace(@S, '/', ''), 112)
你投將失敗。
set dateformat dmy
declare @S varchar(10)
set @S = '2012/03/31'
select cast(@S as datetime)
但是如果你使用ymd
,而不是將工作得很好。
declare @TestDateValue nvarchar(50)
set @TestDateValue = '2012/12/03'
select cast(@TestDateValue as datetime) as NewTestDateTime
你的代碼應該可以工作。我剛剛在這裏舉了一個例子。你可以發佈你想要轉換的字符串嗎?可以成爲它的一部分。
嗯。這個對我有用。 – 2012-04-05 07:53:19
實際上我不是罪魁禍首。我們的pjt領導設計了數據庫,我被迫這樣做。現在的數據類型不能修改爲datetime – ksg 2012-04-05 07:54:38
您能發佈一個**完整的**和可重複的SQL語句,它實際上給出了「算術流程錯誤」? – 2012-04-05 08:00:24