如何在BigQuery中将日期转CDT并拼接字符串,解决相关语法报错
报错根因
该报错是BigQuery对嵌套层级的DATETIME()函数参数解析异常触发的,你可以用更简洁的原生语法规避该问题,同时完全匹配需求。
最终可用写法
你要实现的「转美国中部时区后按日截断」逻辑,不需要拆分两步操作,直接用BigQuery原生的带时区参数的DATE()函数即可一步完成,统计语句如下:
COUNT(DISTINCT CONCAT(x.my_id, CAST(DATE(x.my_datetime, 'US/Central') AS STRING)))
补充说明
如果你的业务逻辑确实需要先得到时区转换后的DATETIME类型值再做截断,也可以给内层的DATETIME()函数额外加一层括号,避免参数解析错误,写法如下:
COUNT(DISTINCT CONCAT(x.my_id, CAST(DATE_TRUNC('day', (DATETIME(x.my_datetime, 'US/Central'))) AS STRING)))
内容的提问来源于stack exchange,提问作者Mark McGown
相关产品推荐
相关产品推荐

