You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中SSIS导入Flat File的日期转换错误修复及数据类型推荐

SSIS导入Flat File日期格式错误修复方案及数据类型推荐

错误原因

源文件日期格式为MM/DD/YY HH:MM:SS(示例:5/3/22 2:09:02 PM),但SSIS默认解析时将其识别为DD/MM/YY格式,导致月份和日期颠倒,最终导入SQL Server后变成2022-03-05 14:09:02,而非预期的2022-05-03 14:09:02。

修复方法

方法1:调整Flat File连接管理器的区域设置

  • 打开Flat File连接管理器,切换到「高级」选项卡
  • 找到目标日期时间列,将「区域设置」修改为英语(美国)(匹配源文件的MM/DD/YY格式规则)
  • 确认列的「数据类型」设置为DT_DBTIMESTAMP或DT_DATE

方法2:用派生列转换强制指定解析格式

如果区域设置调整无效,在数据流任务中添加「派生列」组件,使用格式字符串强制解析:

TO_DATE([原日期列], "MM/dd/yy hh:mm:ss tt")
  • MM对应两位月份,dd对应两位日期,tt匹配AM/PM标识
  • 将派生列的数据类型设置为DT_DBTIMESTAMP,再将该列导入SQL Server

方法3:SQL Server端补救已错误导入的数据

如果数据已经错误写入表,可通过TRY_CONVERT函数重新修正:

UPDATE 你的表名
SET 目标日期列 = TRY_CONVERT(DATETIME, 错误日期列, 101) -- 101是SQL Server中MM/DD/YY的格式代码
WHERE TRY_CONVERT(DATETIME, 错误日期列, 101) IS NOT NULL

推荐数据类型

SSIS数据流阶段

使用DT_DBTIMESTAMP类型,能完整保留日期时间的秒级精度,且与SQL Server的日期类型完美兼容。

SQL Server数据库端

推荐使用DATETIME2类型:

  • 精度最高可达7位小数(支持微秒级),比传统DATETIME精度更高
  • 日期范围更大(从0001-01-01到9999-12-31),兼容性更好
  • 如果仅需秒级精度,DATETIME也可满足需求,但DATETIME2是更优的现代化选择

内容的提问来源于stack exchange,提问作者Jana N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:30:52