varchar 列を smalldatetime に変換する
-
27-09-2019 - |
質問
800 以上のレコードを含むテーブルがあります。このテーブルには、varchar(10) データ型の「Data」という名前の列があり、日付が含まれています。 dd.MM.yyyy 形式。smalldatetimeに変換したいと思います。
Enterprise Management Studio Express を使用して変換しようとしましたが、次のエラーが発生します。
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
どうすれば変換できますか?
解決
私はあなたが私はSQLは「MM.DD.YYYY」を期待していると思うと仕事にこれを取得するには少し文字列操作を行う必要がありますだと思います。だから、最初の月と日をフリップフロップにあなたのテーブルを更新し、その後、変換が通過する必要があります。
update YourTable
set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4)
他のヒント
あなたが使用することができます。
SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1
これはSMALLDATETIMEとしてvarcharcol値を持つテーブルを返します。
そして、新しい値でvarcharcolの内容を更新します。
暗黙的な変換を望まない場合は、 小さい日時, を使用する必要があります CONVERT と引数 スタイル.
dd.MM.yyyy 形式はスタイルに対応します 104.
例えば :
SELECT CONVERT(smalldatetime, '31.12.2018', 104) AS "Result"
Result
------
2018-12-31 00:00:00
所属していません StackOverflow