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

SSIS中如何拼接DT_DBTIMESTAMP时间戳列与INT类型整数列

SSIS拼接指定格式字段实现方案

注:你给出的预期Concat结果中第一个日期2001-01-01属于笔误,以下方案均按读取原BeginDate字段的日期值生成2019-01-01实现

方法1:使用派生列转换(最简实现)

  • 在数据流任务中添加「派生列」转换组件,与上游数据源组件连接
  • 打开派生列编辑器,新增派生列,列名设置为Concat,填写如下表达式:
(DT_WSTR,10)LEFT((DT_WSTR,23)BeginDate,10) + ";" + (DT_WSTR,10)LEFT((DT_WSTR,23)EndDate,10) + ";" + (DT_WSTR,10)CompanyId
  • 表达式说明:
    • 先将DT_DBTIMESTAMP类型的日期字段转换为字符串,取前10位即可得到yyyy-MM-dd格式的日期文本
    • 再将INT类型的CompanyId转换为字符串,用分号拼接三个部分即可得到目标结果

方法2:使用脚本组件(适合复杂逻辑扩展)

如果后续需要对拼接逻辑做更灵活的调整,可以用C#脚本实现:

  • 在数据流任务中添加「脚本组件」,选择转换类型后与上游数据源连接
  • 双击打开脚本组件编辑器,在「输入列」 tab 勾选BeginDate、EndDate、CompanyId三个字段
  • 切换到「输入和输出」tab,新增一个输出列,名称设为Concat,数据类型选择DT_WSTR,长度设置为50即可
  • 点击「编辑脚本」按钮,在自动生成的Input0_ProcessInputRow方法中写入如下代码:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.Concat = $"{Row.BeginDate:yyyy-MM-dd};{Row.EndDate:yyyy-MM-dd};{Row.CompanyId}";
}
  • 保存脚本关闭编辑器,运行数据流即可生成目标字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:15:00