2017-02-16 10 views
0

datetimeに変換しようとしている[YYYYmmdd hhmmss]形式のvarchar列ヘッダー(Prod_time)があります。私は特定の日数からデータを引き出すことができる必要があり、これを容易にするためにvarcharをdatetimeに変換したいと考えています。varcharをdatetimeに変換する方法

varcharをdatetimeに変換する方法はありますか? datetimeの特殊な書式設定は必要ありません。データ型変換のみです。

+2

なぜなぜ最初の場所にvarcharカラムにdatetime情報を格納していますか?これは、最も悪用される単一のデータ型の決定でなければなりません。 –

+0

私はそれを自分の方法で持っていれば、私たちは日付/時刻データをvarchar列に格納しないと信じています!データを扱うのがはるかに難しく、余分な行や操作が必要になります。しかし、私が働いている会社では、管理政治と安全などは、このような不必要な迷惑を防ぐ方法になります。 –

答えて

3

変換関数がこれに対処する方法を知るために、ここに2文字を強制する必要があります。私たちはこのためにSTUFFをかなり簡単に使うことができます。これは、指定された文字列形式で動作します。

declare @SomeChar varchar(20) = '20170216 100903' 

select CONVERT(datetime, STUFF(STUFF(@SomeChar, 12, 0, ':'), 15, 0, ':')) 

可能な限り、データ型をdatetimeに変換することを検討する必要があります。このような手間を省き、無効な値も防止します。

関連する問題