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

BigQuery带时区字符串转DATE遇Invalid date error,如何解决?

解决BigQuery中带时区的字符串转DATE类型的问题

直接用CAST(my_date AS DATE)报错是因为BigQuery的DATE类型转换函数没法直接解析包含时间和时区标识的完整字符串——它只支持纯日期格式(比如YYYY-MM-DD)的转换。你可以通过先转成TIMESTAMP再转DATE的方式解决,这里有两种常用的靠谱方法:

方法一:利用TIMESTAMP自动解析

因为你的数据都是UTC时区,BigQuery的TIMESTAMP()函数可以直接识别这种带UTC标识的时间字符串,之后再转成DATE即可:

SELECT DATE(TIMESTAMP(my_date)) AS formatted_date, stuff_here, stuff_here 
FROM `your-project.your-dataset.your-table`

方法二:用PARSE_TIMESTAMP指定格式(更稳妥)

如果担心后续数据格式有变化,或者需要明确指定解析规则,可以用PARSE_TIMESTAMP配合格式字符串来精准解析,再转DATE:

SELECT DATE(PARSE_TIMESTAMP("%Y-%m-%d %H:%M:%S %Z", my_date)) AS formatted_date, stuff_here, stuff_here 
FROM `your-project.your-dataset.your-table`

这里的%Y-%m-%d %H:%M:%S %Z完全匹配你给出的YYYY-MM-DD HH:MM:SS TIMEZONE格式,其中%Z用来匹配时区标识(比如UTC)。

两种方法都能避免Invalid date error,顺利将带UTC时区的字符串列转换为DATE类型,导出到新表也不会有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:25:25