首页 > 解决方案 > BigQuery:从带有时区的日期时间中提取日期

问题描述

我正在尝试使用从列start_time中提取的日期返回 BigQuery 中的列。

列中的值格式为:11/27/2019 14:40:15 CET +0100

我写了以下代码:

SELECT EXTRACT(DATE FROM TIMESTAMP(start_time))
  AS date
  FROM `cc_raw.cc_exp` 

但是我收到错误消息:时间戳无效:'11/27/2019 14:40:15 CET +0100'

我怎么去这里?

非常感谢,珍妮

标签: datetimegoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

#standardSQL
SELECT 
  EXTRACT(DATE FROM PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S %Z %z', start_time)) AS date
FROM `cc_raw.cc_exp`   

您使用PARSE_TIMESTAMP函数 with'%m/%d/%Y %H:%M:%S %Z %z'来处理以字符串形式呈现的时间戳,格式为'11/27/2019 14:40:15 CET +0100'

您可以通过在下面运行来进行快速测试

#standardSQL
SELECT 
  EXTRACT(DATE FROM PARSE_TIMESTAMP('%m/%d/%Y %H:%M:%S %Z %z', '11/27/2019 14:40:15 CET +0100')) AS date

推荐阅读