2016-04-25 10 views
0

日付がCYYMMDDとして保存されている200,000件を超えるエントリを持つテーブルがあります(現在は整数として格納されています)。たとえば、1992年12月5日は1921205と表示され、2016年4月25日は2160425と表示されます。これらの結果をYYYMMDD形式の新しいテーブルに表示する必要があります。したがって、先の2つの例では、1992120520160425となります。私は使用しようとしました- CYYMMDDの日付をYYYYMMDDに変換する

CONVERT(VARCHAR(8),[DATE], 112) 

これはエラーではありませんが、私のすべての日付が同じように見えるので、変換は行われません。私は間違って何をしていますか?

+2

理由だけではなく、 'VARCHAR'に変換するのではなく、実際の' DATE'データ型として値を格納しませんか? – Siyual

+0

'CONVERT(DATE、[DATE]、112)を使用して日付に変換しようとすると、次のエラーが発生します。データ型intから日付への明示的な変換はできません。 – mdarr

答えて

1

あなたは次のように数値を分割する必要があります:

DATEFROMPARTS(1800 + FLOOR([DATE]/10000) , FLOOR([DATE]/100)%100, [DATE]%100)

+0

'[Date]'は 'INT'データ型であり、' VARCHAR'ではありません。 – Siyual

+0

ありがとうございます!これは私のために働いた! – mdarr

関連する問題