2016-12-19 15 views
1

SQLテーブルに一括挿入する必要がある.csvファイルが多数あります。日付書式を読み込む際の一括挿入エラー

csvファイルでは、日付形式はYYYY-MM-DDで、時刻はHH:MM:SS形式の別の列です。

私のテーブルで
"2016-11-24";"01:00:16" 

私は、日付データ型と時刻データ型として2つの列を作成し、挿入するためのコードのこの部分を使用して:

BULK 
INSERT [dbo].[table_name] 
FROM 'filepath' 
WITH 
(
FIRSTROW = 2, 
FIELDTERMINATOR = ';', 
ROWTERMINATOR = '\n' 
) 

をしかし、私はこのエラーを取得する:

Msg 4864, Level 16, State 1, Line 37 
Bulk load data conversion error (type mismatch or invalid character for the  specified codepage) for row 2, column 1 (date). 

通常の文を使って文を書くと...

+0

あなたはyyyy-mm-ddとして到着し、yyyy/mm/ddとして到着していないことを肯定していますか –

+0

はい、そのように到着します。 2016-12-19 – mgr33n

+0

コードページもOKですか?選択したCPに適合しない文字マッピングの不一致があるようです。あなたのCSVはおそらく異なるエンコーディングを使用していますか? –

答えて

0

まず、あなたの物理テーブルの日付と時刻の列データタイプ。これにはdatetime形式があります。これは、最初にすべての.csvファイルデータをvarcharデータ型の一時テーブルに移動することを意味します。一時テーブルに挿入した後、datetime変換を使用して物理テーブルに移動します。

+0

私は挿入する必要がある10分ごとに新しいデータを取得しているので、1つの手順でこれを実行できますか? – mgr33n

+0

可能ですが、ストアプロシージャを書き込んでください。次の行のテンポラリテーブルに最初に挿入して物理テーブルに移動します – Mansoor

関連する問題