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
将使秒数四舍五入到最接近的分钟数。
我有许多由生产机器生成的 .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
将使秒数四舍五入到最接近的分钟数。