2010-11-10 92 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