2017-03-15 23 views
0

我有许多由生产机器生成的.csv文件。我使用BULK INSERT将它们加载到MSSQL服务器中的各个表中,没有任何错误。我最近注意到,我使用BULK INSERT传输数据的所有表的datetime列都有正确的日期和时间(小时和分钟),但所有记录的秒数都为零。SQL BULK INSERT在.csv的d​​atetime列中为零秒

列数据类型是DATETIME。

为什么在日期时间秒钟清零?

样本数据:

TESTBULKINSERT,TESTBULKINSERT,2017-03-10 06:01:16,,,,Z1860_1,1,0,PASSED,NA,NA,NA,0 

BULK INSERT命令:

BULK INSERT Test.dbo.vICT_DATA FROM '\\server\CSV\testfile.csv' With (FIELDTERMINATOR = ',', FIRSTROW = 2, MAXERRORS = 0, ROWTERMINATOR = '\n' 

结果:

PARTTYPE SN TDATE JOBNO BADGE TESTMODE TESTERID NESTID PASS_FAIL FAILCODE FAIL_DESC FIRST_FAIL_VAL UNITS LNUM ID 
TESTBULKINSERT TESTBULKINSERT 2017-03-10 06:01:00.000 NULL NULL NULL Z1860_1 1 0 PASSED NA NA NA,0 NULL 306244 
+0

尝试添加DATAFILETYPE ='char' – BobNoobGuy

+0

使用DATAFILETYPE ='CHAR'的结果相同我刚刚尝试添加CODEPAGE ='ACP',结果相同。 – Josh

+1

你确定你没有在某处使用SMALLDATETIME吗? –

回答

0

当通过查看与秒插入DATETIME,视图应该也有数据类型设置为DATETIME。在VIEW中使用SMALLDATETIME将导致秒数四舍五入到最接近的分钟数。