4
Select CONVERT(Date, '13-5-2012')

上記の T-SQL ステートメントを Management Studio で実行すると、次のエラーが表示されます。

「文字列から日時を変換する際に変換に失敗しました」

その値を有効な日付型に正常にキャストできる方法はありますか? nvarchar(255) 列にそのような値があり、その dataType を SQL Server テーブルの Date 型に変更したいのですが、そのエラーが発生したため、最初にテーブルの Update ステートメントで変換を行いたいと考えています。

4

5 に答える 5

11

使用している日付形式を指定します。

Select CONVERT(Date, '13-5-2012', 105)

105 は、世紀を含むイタリアの日付形式 (dd-mm-yyyy) を意味します。

参照: http://msdn.microsoft.com/en-us/library/ms187928.aspx

于 2012-06-13T09:06:50.610 に答える
4

一般に、通常、列に変換できないデータがあると思われ、最初に変換可能であることを確認する case ステートメントを使用します。

SELECT CASE WHEN ISDATE(mycolumn)=1 THEN CONVERT(Date, mycolumn, [style]) END
FROM mytable

ConvertSQL Server の日付形式の設定に依存していると思います。で日付形式の設定を確認してくださいDBCC USEROPTIONS

dateformat を次のように設定すると、dmy理解できると思います。

SET DATEFORMAT dmy
GO

それでもうまくいかない場合は、データに一致するスタイルを見つけることができず、データが一貫した形式である場合は、手動で文字列を操作して構築する必要があります (できる場合はこれを行わないでください)。それ)。

于 2012-06-13T09:06:21.667 に答える
0

これを試して....

Select CONVERT(Date,'5-13-2012')

「mm-dd-yyyy」形式を使用します。

于 2012-06-13T08:57:09.043 に答える