【发布时间】:2017-03-15 17:23:00
【问题描述】:
我有许多生产机器生成的 .csv 文件。我使用 BULK INSERT 将它们加载到我们的 MSSQL 服务器中的各种表中,没有错误。我最近注意到我使用 BULK INSERT 传输数据的所有表的 datetime 列都有正确的日期和时间(小时和分钟),但是所有记录的秒数为零。
列数据类型为 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
【问题讨论】:
-
尝试添加 DATAFILETYPE = 'char'
-
使用 DATAFILETYPE = 'CHAR' 得到相同结果我刚刚尝试添加 CODEPAGE = 'ACP' 得到相同结果。
-
你确定你没有在某处使用
SMALLDATETIME吗? -
这就是我最初认为的问题,但在将表更新为 DATETIME 后我仍然遇到问题。
-
我使用 SQL 2016 express 进行测试,我的秒数完好无损。你有什么 SQL 版本?
标签: sql sql-server csv datetime bulkinsert