0

SQL Server 2008 で BULK INSERT を使用して TSV (タブ区切り値) ファイルをインポートしようとしています。

これが私のスクリプトです:

USE ABC
GO

CREATE TABLE CSVTest
(ID INT,
FirstName VARCHAR(40),
LastName VARCHAR(40),
TodaysDate DATETIME)
GO

BULK
INSERT CSVTest
FROM 'd:\csvtest.txt'
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
GO

--Check the content of the table.
SELECT *
FROM CSVTest
GO

--Drop the table to clean up database.
SELECT *
FROM CSVTest
GO

DROP TABLE CSVTest
GO

ファイルの内容は次のd:\csvtest.txtとおりです。

1 ジェームズ・スミス 2010/10/16 04:45:35
2 メギー・スミス 2010/10/16 04:45:35
3 ロバート・スミス 2010/10/16 04:45:35
4 アレックス・スミス 2010/10/16 04:45:35

残念ながら、次のエラーが表示されます。

メッセージ 4864、レベル 16、状態 1、行 2 行 1、列 4 (TodaysDate) の一括読み込みデータ変換エラー (型の不一致または指定されたコードページの無効な文字)。

明らかに、TSV ファイルの日付形式を .NET で受け入れられる形式に変換する必要がありますDATETIME

誰か助けてくれませんか?

4

1 に答える 1

5

これは、2010 年 16 月 10 日という日付形式 (つまり、2010 年 10 月 16 日) の日付ではなく、最初に月を期待することに関係があるのでしょうか。BULK INSERT の前にこれを試すことができます。

SET DATEFORMAT dmy;
于 2010-10-16T15:18:23.880 に答える