0

我已在我的数据库中以yyyy/mm/dd格式存储StartDate为数据类型。当我尝试将其转换为 a时,我得到了nvarchardatetimeArithematic Flow Error.

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

这是我的代码:

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

2 回答 2

2

看看CAST 和 CONVERT

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

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

试试这个

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

如果您将DATEFORMAT 设置为 ,您的演员将失败dmy

set dateformat dmy

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

但是,如果您改用它,效果会很好ymd

于 2012-04-05T08:00:43.190 回答
0
declare @TestDateValue nvarchar(50)
set @TestDateValue = '2012/12/03'
select cast(@TestDateValue as datetime) as NewTestDateTime

您的代码应该可以工作。我刚刚在这里举了一个例子。您可以发布您要转换的字符串吗?可能与它有关。

于 2012-04-05T08:17:32.413 回答