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

如何在BigQuery中将'1970-01-01T00:00Z'转为Timestamp并解决报错

BigQuery中UTC时间转IST时区日期的解决方案

错误原因

你遇到的Invalid timestamp: '1970-01-01T00:00Z'错误,是因为直接使用CAST将带Z(UTC时区标识)的ISO字符串转为TIMESTAMP类型时,BigQuery无法正确解析该格式。

正确转换方式

方式一:用TIMESTAMP函数解析UTC时间

先通过TIMESTAMP函数正确识别带时区标识的字符串,再转换为IST时区的日期:

SELECT DATE(TIMESTAMP('1970-01-01T00:00Z'), 'Asia/Kolkata') AS ist_date

执行后返回1970-01-01(UTC 00:00对应IST 05:30,日期未跨天)。

方式二:显式时区转换语法

使用AT TIME ZONE语法完成时区转换,逻辑更清晰:

SELECT DATE(TIMESTAMP '1970-01-01T00:00Z' AT TIME ZONE 'Asia/Kolkata') AS ist_date

方式三:精准解析格式(适配Java输出)

如果Java返回的是严格ISO-8601格式字符串,用PARSE_TIMESTAMP指定格式确保解析无误:

SELECT DATE(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%EZ', '1970-01-01T00:00Z'), 'Asia/Kolkata') AS ist_date

验证示例

若转换2024-05-20T23:00Z(UTC时间),以上方法都会返回2024-05-21(IST时间为次日04:30,日期跨天),符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:51:35