Azure Synapse Data Flow表达式构建器日期格式化报错求助
Azure Synapse Data Flow 日期格式转换解决方案
问题诊断
你的表达式存在两个关键错误:
- 列名引用错误:用单引号包裹
'Start Date (BST)'会被识别为字符串常量,而非列引用。包含空格、特殊字符的列名需用方括号[]包裹。 - 格式参数不匹配:
toTimestamp的第二个参数是原始日期字符串的格式,而非目标格式。你的原始日期格式是yyyy-MM-ddTHH:mm:ss.SSSSSS,需以此作为解析格式。
正确表达式示例
方案1:先转Timestamp再转目标字符串格式
如果需要输出字符串类型的格式化日期(无毫秒),使用以下表达式:
toString(toTimestamp([Start Date (BST)], 'yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS'), 'dd/MM/yyyy HH:mm:ss')
toTimestamp([Start Date (BST)], 'yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS'):将原始字符串列转换为Timestamp类型,其中\'T\'用于转义格式字符串中的字面量TtoString(..., 'dd/MM/yyyy HH:mm:ss'):将Timestamp类型转换为指定格式的字符串,自动去除毫秒部分
方案2:使用convert函数一步转换
也可以用convert函数直接完成格式转换:
convert([Start Date (BST)], 'string', 'dd/MM/yyyy HH:mm:ss', 'yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS')
参数说明:
- 目标列:
[Start Date (BST)] - 输出类型:
'string' - 目标格式:
'dd/MM/yyyy HH:mm:ss' - 原始格式:
'yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS'
操作步骤
- 在Azure Synapse Data Flow中添加派生列转换
- 在表达式构建器中输入上述任一表达式,为新列命名(例如
Formatted Start Date) - 点击「预览」验证转换结果是否符合预期
内容的提问来源于stack exchange,提问作者HamidBee
相关产品推荐
相关产品推荐

