この表はどのように見えるかです:認識できないdatetime形式のCSVをインポートするにはどうすればよいですか?
CREATE TABLE [dbo].[temptable]
(
[id] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[datetime] [datetime] NOT NULL,
[status] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[col4] [money] NULL,
[col5] [float] NULL,
[col6] [money] NULL,
[col7] [float] NULL,
[col8] [money] NULL,
[total] [money] NOT NULL
)
これは、CSVはどのように見えるかです:
10.0
4
1 SQLCHAR 0 50 "," 1 sale_id ""
2 SQLDATETIME 0 8 "," 2 sale_datetime ""
3 SQLCHAR 0 50 "," 3 sale_status ""
4 SQLMONEY 0 8 "\n" 9 grand_total ""
SQL:
"ID","Date","status","Total"
"1611120001","12/11/2016 10:06 AM","closed","8.15"
"1611120002","12/11/2016 10:14 AM","closed","21.25"
"1611120003","12/11/2016 10:24 AM","closed","10.75"
"1611120004","12/11/2016 10:39 AM","closed","10.90"
"1611120005","12/11/2016 10:46 AM","closed","30.10"
"1611120006","12/11/2016 11:04 AM","closed","7.40"
これは私の形式のファイルがどのように見えるかですスクリプト:
SET DATEFORMAT dmy
BULK INSERT temptable
FROM 'C:\backup\temp.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FORMATFILE = 'C:\backup\temp_format.txt'
)
私はスクリプトを実行しようとしたとき、私はこのエラーを取得しています:
私はをメッセージ4864、レベル16、状態1、行2
バルクロードデータ変換エラー(のための型の不一致または無効な文字指定されたコードページ)を行2の列2(datetime)に格納します。
datetime
この
12/11/2016 10:06 AM
ような日付の形式を受け入れないだろうと思うが、このCSVファイルは、サードパーティのソフトウェアによって作成されたので、私は何ができるのでしょうか?
がそれをインポートdatetimeの文字列を受け取ったステージングテーブルに入れ、最後の場所へのデータのサニタイズとコピーを処理する別のプロセスを持っていますか? – Igor