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

使用Copy Activity迁移数据时,字符串格式日期/时间列转Datetime报错求助

解决Copy Activity迁移日期/日期时间格式不兼容问题

问题分析

源数据里的日期时间格式2023-02-20-12.07.12.861826不符合SQL Server Datetime类型的默认解析规则,同时空值也可能触发转换报错,需要针对性做格式转换处理。

解决方案

1. 使用数据流动(Data Flow)替代直接Copy Activity(推荐)

在数据流动中添加派生列,对日期和日期时间列做格式转换:

  • 处理日期列:判断空值后转换为日期类型
    iif(isNull(日期列), toDate(null), toDate(日期列, 'yyyy-MM-dd'))
    
  • 处理日期时间列:先替换分隔符为标准格式,再转换为Datetime类型
    iif(isNull(日期时间列), toTimestamp(null), toTimestamp(replace(日期时间列, '-', ' ', 3), 'yyyy-MM-dd HH.mm.ss.SSSSSS'))
    
    说明:replace(日期时间列, '-', ' ', 3)会把第3个-替换为空格,将2023-02-20-12.07.12.861826转为2023-02-20 12.07.12.861826,再通过toTimestamp按指定格式解析。

2. 在Copy Activity中配置映射规则+自定义格式

  • 打开Copy Activity的映射标签页,找到目标日期、日期时间列,点击列旁的编辑图标
  • 日期列:设置源类型为String,目标类型为Datetime,指定源格式为yyyy-MM-dd
  • 日期时间列:设置源类型String,目标类型Datetime,自定义源格式为yyyy-MM-dd-HH.mm.ss.SSSSSS

    注意:部分版本的Copy Activity对自定义格式支持有限,若此方法无效,优先采用数据流动方案。

3. 空值处理

如果源列存在空值,需确保映射时允许空值传递到目标表,或在转换逻辑中显式处理空值场景,避免因空值无法转换报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:32:32