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

SQL BULK INSERT zero seconds in datetime column from .csv

我有许多由生产机器生成的 .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 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

当通过 VIEW 插入带有秒数的 DATETIME 时,VIEW 还应将数据类型设置为 DATETIME。在 VIEW 中使用 SMALLDATETIME 将使秒数四舍五入到最接近的分钟数。