BigQuery:将字符串转换为日期时间

BigQuery: cast string as datetime

我在 bigquery 中有一个名为 'timestamp' 的包含数百万个日期的列,但它们被标记为字符串。

时间戳列的格式如下:

2022-02-09T12:01:51.911821Z

对于数据集中的每个观测值。

我希望将其转换为日期时间并尝试了以下操作:

SELECT
  CAST(timestamp AS DATETIME)
FROM
  `bigquery_table`
LIMIT
  1000

查询将处理,但我被告知 'Invalid datetime string "2022-02-09T12:01:51.911821Z"'。有什么解决这个问题的建议吗?

谢谢

您可以尝试先将其转换为 datetimeoffset,如下所示: select cast(cast('2022-02-09T12:01:51.911821Z' as datetimeoffset) as datetime)

那可能是ISO 8601格式,你可以使用PARSE_TIMESTAMP函数。

SELECT
  PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*SZ', timestamp)
FROM
  `bigquery_table`
LIMIT
  1000