Sql中的日期时间错误

时间:2012-04-05 07:49:45

标签: sql-server casting

我已在我的数据库中以 yyyy / mm / dd 格式存储StartDate作为数据类型nvarchar。当我尝试将其投放到datetime时,我会收到Arithematic Flow Error.

这是什么错误?我已经尝试了castconvert方法,但仍然会抛出错误。

这是我的代码:

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

2 个答案:

答案 0 :(得分:2)

查看CAST and CONVERT

103dd/mm/yyyy所以这将失败

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

试试这个

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

如果SET DATEFORMATdmy,则您的演员表会失败。

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

您的代码应该有效。我刚才给出了一个例子。你可以发布你想要转换的字符串吗?可以随便找到它。