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

使用%E4Y%m%d等无分隔日期格式调用FORMAT_DATE时出现语法错误如何解决

问题原因

你触发报错的核心原因是FORMAT_DATE函数的第一个入参要求为字符串类型的格式模板,你没有给%E4Y%m%d/%Y%m%d这类格式内容加引号,SQL解析器会把%开头的内容识别为非法标识符,因此抛出非法字符报错。

解决方法

直接给格式模板包裹单引号即可,符合你预期的正确写法如下:

WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_TRUNC(DATE_SUB(date_val, INTERVAL 1 MONTH), MONTH))

补充说明

  • %Y对应4位年份、%m对应2位补零的月份、%d对应2位补零的日期,刚好匹配你需要的20210901这类输出格式,不需要使用%E4Y写法也能完全满足需求
  • 标准SQL环境下使用单引号或双引号包裹字符串都可以,只要前后统一即可,上述写法完全兼容BigQuery的_TABLE_SUFFIX匹配场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:15:03