以下の文字列形式のデータ列があります
上記をコピーして Excel シートに貼り付け、列を日付形式に変更すると、上記のすべてが同じ形式に正しく変換されます。SQL サーバーに同様の機能はありますか? CAST と CONVERT を使用してみましたが、変換失敗エラーが発生しました。
ファローアップ
標準の CAST および CONVERT 関数が失敗する原因となる値を見つけました。次のように、decimal 値と int 値を持つ行がいくつかあります。
以下の文字列形式のデータ列があります
上記をコピーして Excel シートに貼り付け、列を日付形式に変更すると、上記のすべてが同じ形式に正しく変換されます。SQL サーバーに同様の機能はありますか? CAST と CONVERT を使用してみましたが、変換失敗エラーが発生しました。
ファローアップ
標準の CAST および CONVERT 関数が失敗する原因となる値を見つけました。次のように、decimal 値と int 値を持つ行がいくつかあります。
さまざまな形式のバリエーションを説明するために、最終的に CASE ステートメントを作成しました。
CASE
WHEN [CommissionStart Date] LIKE '%NULL%'
THEN '1/1/1900'
WHEN ISDATE([CommissionStart Date]) = 1
THEN CAST([CommissionStart Date] AS DATE)
ELSE CONVERT(DATETIME, CAST([CommissionStart Date] AS DECIMAL(11, 5)))
END