我已在我的数据库中以 yyyy / mm / dd 格式存储StartDate
作为数据类型nvarchar
。当我尝试将其投放到datetime
时,我会收到Arithematic Flow Error.
这是什么错误?我已经尝试了cast
和convert
方法,但仍然会抛出错误。
这是我的代码:
cast(Start_Date as datetime) &&
convert(datetime,Start_Date,103 )
答案 0 :(得分:2)
103
是dd/mm/yyyy
所以这将失败
declare @S varchar(10)
set @S = '2012/03/31'
select convert(datetime, @S, 103)
试试这个
select convert(datetime, replace(@S, '/', ''), 112)
如果SET DATEFORMAT为dmy
,则您的演员表会失败。
set dateformat dmy
declare @S varchar(10)
set @S = '2012/03/31'
select cast(@S as datetime)
但是,如果您使用ymd
,那么工作正常。
答案 1 :(得分:0)
declare @TestDateValue nvarchar(50)
set @TestDateValue = '2012/12/03'
select cast(@TestDateValue as datetime) as NewTestDateTime
您的代码应该有效。我刚才给出了一个例子。你可以发布你想要转换的字符串吗?可以随便找到它。