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

SSIS导入CSV至SQL Server:如何将12小时制时间转为24小时制

解决CSV 12小时制时间导入SQL Server自动转为24小时制的方法

以下是几种无需手动修改Excel的自动转换方案:

方案一:通过SQL Server导入向导直接转换

  • 启动SQL Server导入和导出向导,选择CSV作为数据源
  • 进入「高级」设置界面,将目标时间列的数据类型临时设为string(确保完整读取带AM/PM的时间文本)
  • 在「数据转换」步骤中,对该列使用转换函数:CONVERT(time(7), [源时间列名], 100)
    • 样式码100用于识别包含AM/PM标识的12小时制时间字符串,自动转为24小时制的time(7)类型
  • 完成向导配置后执行导入,2:00 PM会被正确转换为14:00:00存入目标列

方案二:使用SSIS包处理

  • 在SSIS中创建包,添加「平面文件源」组件并连接到CSV文件,将时间列的输出类型设为DT_STR(字符串类型)
  • 添加「派生列」组件,新增派生列,输入表达式:(DT_DBTIME2,7)[源时间列名]
    • SSIS会自动解析带AM/PM的12小时制字符串,转换为符合要求的24小时制time(7)类型
  • 将派生列输出连接到「OLE DB目标」组件,映射到SQL Server的time(7)列,运行包完成导入

方案三:先导入临时表再批量转换

  • 创建临时表,将时间列定义为varchar(20)类型,将CSV数据完整导入该临时表
  • 执行以下SQL语句,将临时表中的时间转换后插入目标表:
INSERT INTO 目标表(目标时间列)
SELECT CONVERT(time(7), 临时表时间列, 100)
FROM 临时表
  • 该语句通过CONVERT函数的样式码100自动完成12小时制到24小时制的转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:33:18