0

データベースにyyyy/mm/ddの形式でStartDateデータ型として保存しました。にキャストしようとすると、取得していますnvarchardatetimeArithematic Flow Error.

このエラーは何ですか? castとメソッドの両方を試しましconvertたが、まだエラーがスローされます。

これが私のコードです:

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

2 に答える 2

2

CAST と 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 DATEFORMAT asがある場合、キャストは失敗します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 に答える