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

ADF中utcNow()转DateTime传入存储过程报错问题排查

问题原因与解决办法

核心错误

你误用了convertFromUtc函数的参数规则:

  • 该函数的第二个参数必须是时区标识字符串(比如'China Standard Time'),但你传入了日期格式'yyyy-MM-dd hh:mm:ss',函数无法识别目标时区,直接触发参数格式错误。
  • 另外报错信息里的@uts.Now()应该是拼写失误,正确的函数是@utcNow(),这大概率是输入时的笔误。

正确处理方式

根据你的实际需求选择对应方案:

方案1:直接传递UTC时间给存储过程

你的管道参数ExecutionTime默认值为@utcNow(),本身就是标准的DateTime类型,无需任何转换,直接在存储过程活动的参数中引用@pipeline().parameters.ExecutionTime即可,ADF会自动适配存储过程的DateTime参数类型。

方案2:转换为指定时区的DateTime再传递

如果需要将UTC时间转换为其他时区的时间,使用convertFromUtc的正确语法:

@convertFromUtc(pipeline().parameters.ExecutionTime, 'China Standard Time')

将第二个参数替换为你需要的时区标识(比如'UTC'、'Eastern Standard Time'等),转换后的结果仍为DateTime类型,可直接传递给存储过程。

方案3:存储过程需要特定格式的字符串参数

如果存储过程实际接收的是字符串类型而非DateTime,使用formatDateTime函数转换格式:

@formatDateTime(pipeline().parameters.ExecutionTime, 'yyyy-MM-dd HH:mm:ss')

注意HH表示24小时制,hh表示12小时制,可根据需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:03:20