批量以YYYYMM格式将日期插入MS SQL表中的日期字段

mac*_*iek 1 t-sql sql-server bulk sql-server-2008-r2 date-formatting

我有一个大文本文件(超过3亿条记录).有一个字段包含YYYYMM格式的日期.目标字段是日期类型,我正在使用MS SQL 2008 R2服务器.由于数据量巨大,我更喜欢使用批量插入.这是我已经做过的事情:

bulk insert Tabela_5
from 'c:\users\...\table5.csv'
with
(
    rowterminator = '\n',
    fieldterminator = ',',
    tablock
)
select * from Tabela_5
Run Code Online (Sandbox Code Playgroud)

201206在文件中原来是2020-12-06在服务器上,而我希望它2012-06-01(我不关心这一天).有没有办法将这种格式的日期批量插入日期类型的字段?

亲切的问候maciej pitucha

gbn*_*gbn 5

SET DATEFORMAT ymd在批量插入语句之前运行

请注意,yyyy-mm-ddyyyy-dd-mm不是安全的SQL服务器一般:这将导致此.一直用yyyymmdd.有关更多信息,请参阅转换和验证日期字符串的最佳方法(注释特别突出了误解)


Jai*_*han 5

批量插入无法执行此操作.你有2个选择.

  1. 将日期作为varchar字段插入,然后运行查询以将日期转换为DateTime字段
  2. 使用SSIS