2017-06-06 12 views
0

SQL Server 2008の一時表にCSVファイルをロードする必要があります。11/04/2017 at 08:24:52のような形式の日付文字列を含む列がCSVファイルにあります。この文字列を解析してdatetime2列に挿入するにはどうすればよいですか?カスタム日付文字列をSQL datetime2に変換する

予想される変換誤差で次の結果 - Conversion failed when converting date and/or time from character string.

create table #temp 
    (
    date_col datetime2(2), 
    some_id varchar(20) 
) 

    insert into #temp(date_col , some_id) 
    values ('11/04/2017 at 08:24:52', '2323434') 

答えて

1

:私がするので

select convert(datetime2, replace('11/04/2017 at 08:24:52',' at',''),103) -- 2017-04-11 08:24:52.0000000 
     ,convert(datetime2, replace('11/04/2017 at 08:24:52',' at',''),101) -- 2017-11-04 08:24:52.0000000 
+0

おかげで、置き換えがSTUFFよりも、私にはよりエレガントなようですあなたの答えを受け入れる。 –

1

削除するstuffを使用することができatとスタイル103(dd/mm/yyyyを仮定)または101(mm/dd/yyyyを想定)を用いconvert

DECLARE @Date varchar(30) = '11/04/2017 at 08:24:52' 

SELECT CONVERT(datetime2, STUFF(@Date, 12, 3, ''), 103) 

結果:

11.04.2017 08:24:52 
あなただけのスペースの一つと一緒に atを削除し、あなたがあなたの月と日を持っている形式のSQL Serverに指示する必要があり
関連する問題