2010-11-10 160 views
0

我有一個CSV文件,其中包含三個日期插入日期:與BULK INSERT

'2010-07-01','2010-08-05','2010-09-04' 

當我嘗試批量插入他們...

BULK INSERT [dbo].[STUDY] 
     FROM 'StudyTable.csv' 
     WITH 
     ( 
      MAXERRORS = 0, 
      FIELDTERMINATOR = ',', 
      ROWTERMINATOR = '\n' 
     ) 

我得到一個錯誤:

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (CREATED_ON). 

所以我假設這是因爲我有一個無效的日期格式。什麼是正確的格式使用?

編輯

CREATE TABLE [dbo].[STUDY] 
    (
     [CREATED_ON] DATE, 
     [COMPLETED_ON] DATE, 
     [AUTHORIZED_ON] DATE, 
    } 
+1

請告訴我你的表中的字段的數據類型? – JNK 2010-11-10 14:41:21

+0

這三種方法都'DATE'小號 – Entity 2010-11-10 14:43:32

回答

6

你有引號(')日期周圍。刪除這些,它應該工作。

0

請問您的數據文件有一個頭記錄?如果是這樣,顯然你的表名不會是正確的數據類型,並且當SQL Server試圖將它們插入到表中時會失敗。試試這個:

BULK INSERT [dbo].[STUDY] 
    FROM 'StudyTable.csv' 
    WITH 
    ( 
     MAXERRORS = 0, 
     FIELDTERMINATOR = ',', 
     ROWTERMINATOR = '\n', 
     FIRSTROW = 2 
    ) 

根據MSDN的BULK INSERT操作技術上不支持在CSV文件中跳過頭記錄。您可以刪除標題記錄或嘗試上述操作。我目前沒有SQL Server在我面前,所以我沒有證實這個作品。因人而異。

+0

沒有,沒有頭。原來,(從OpenOffice的Excel版本導出),但我手動刪除它們。 – Entity 2010-11-10 14:51:08