QuickSight手动格式化yyyymm日期失败,计算字段语法报错求助
QuickSight日期字段补前导0的计算字段语法错误修复
你的代码存在两个关键问题导致语法报错:
- 代码末尾多了一个多余的闭合括号
) ifelse的两个分支返回类型不统一:then分支拼接后是字符串类型,else分支直接返回的是数字类型(extract('MM', {created_at})的结果是数字),QuickSight 要求条件判断的所有分支必须返回相同数据类型
以下是修正后的计算字段代码:
concat( toString(extract('YYYY', {created_at})), toString( ifelse( extract('MM', {created_at}) < 10, concat('0', toString(extract('MM', {created_at}))), extract('MM', {created_at}) ) ) )
修正说明:
- 移除了代码末尾多余的括号
- 确保
ifelse的else分支返回的数字类型被toString转换为字符串,和then分支类型保持一致
另外,你也可以使用更简洁的 lpad 函数来实现月份补前导0的需求,代码更简洁易读:
concat( toString(extract('YYYY', {created_at})), lpad(toString(extract('MM', {created_at})), 2, '0') )
lpad 函数会将月份字符串左侧补0,直到长度为2,无需写条件判断,更高效。
内容的提问来源于stack exchange,提问作者juan escorcia
相关产品推荐
相关产品推荐

