SQL BULK在.csv的日期时间列中插入零秒

时间:2017-03-15 17:23:00

标签: sql sql-server csv datetime bulkinsert

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

列数据类型为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

1 个答案:

答案 0 :(得分:0)

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