Google bigquery 如何在BigQuery的表中显示时间戳类型列的时间?

Google bigquery 如何在BigQuery的表中显示时间戳类型列的时间?,google-bigquery,bigquery-standard-sql,Google Bigquery,Bigquery Standard Sql,我有一个名为“INTERACTION\u TIMESTAMP”的列的表 我想显示特定列中的日期和时间格式 到目前为止,我已经尝试了以下代码: SELECT USERID as UserId, INTERACTION_TIMESTAMP, EXTRACT(ISOWEEK FROM INTERACTION_TIMESTAMP) as IsoWeek, EXTRACT(DATE from INTERACTION_TIMESTAMP) as date, EXTRACT(DAYOFWEEK FR

我有一个名为“INTERACTION\u TIMESTAMP”的列的表

我想显示特定列中的日期和时间格式

到目前为止,我已经尝试了以下代码:

SELECT
 USERID as UserId,
 INTERACTION_TIMESTAMP,
 EXTRACT(ISOWEEK FROM INTERACTION_TIMESTAMP) as IsoWeek,
 EXTRACT(DATE from INTERACTION_TIMESTAMP) as date,
 EXTRACT(DAYOFWEEK FROM INTERACTION_TIMESTAMP)-1 as DayOfWeek,
 PARSE_TIMESTAMP("%H", INTERACTION_TIMESTAMP, "UTC") as Time;
 CONCAT(CAST(JOURNEY_ID AS STRING),"-", CAST(JOURNEY_ACTIONID AS STRING)) as JobId,
CASE 
 WHEN INTERACTION_TYPE = 0 THEN "open"
 WHEN INTERACTION_TYPE = 1 THEN "click"
 ELSE null
END AS Open_Click
FROM
 `XXXXXXXXX.database_name`
但是,BigQuery始终从该行代码中显示一条错误消息:
PARSE_TIMESTAMP(“%H”,INTERACTION_TIMESTAMP,“UTC”)作为时间

错误消息(据我记忆所及)说
PARSE_TIMESTAMP
与本网站中显示的语法不匹配:

如何处理
INTERACTION\u TIMESTAMP
中的字符串,以便在BigQuery中显示时间戳中的时间值


谢谢

您可以使用提取功能提取时间并像这样传递时区

select EXTRACT(TIME FROM CURRENT_TIMESTAMP() AT TIME ZONE 'UTC') as Time;

您可以使用EXTRACT函数提取时间并像这样传递时区

select EXTRACT(TIME FROM CURRENT_TIMESTAMP() AT TIME ZONE 'UTC') as Time;

下面是BigQuery标准SQL

您应该使用
格式\u时间戳

SELECT
 USERID as UserId,
 INTERACTION_TIMESTAMP,
 EXTRACT(ISOWEEK FROM INTERACTION_TIMESTAMP) as IsoWeek,
 EXTRACT(DATE from INTERACTION_TIMESTAMP) as date,
 EXTRACT(DAYOFWEEK FROM INTERACTION_TIMESTAMP)-1 as DayOfWeek,
 FORMAT_TIMESTAMP("%H", INTERACTION_TIMESTAMP, "UTC") as Time,
 CONCAT(CAST(JOURNEY_ID AS STRING),"-", CAST(JOURNEY_ACTIONID AS STRING)) as JobId,
CASE 
 WHEN INTERACTION_TYPE = 0 THEN "open"
 WHEN INTERACTION_TYPE = 1 THEN "click"
 ELSE null
END AS Open_Click
FROM
 `XXXXXXXXX.database_name`

下面是BigQuery标准SQL

您应该使用
格式\u时间戳

SELECT
 USERID as UserId,
 INTERACTION_TIMESTAMP,
 EXTRACT(ISOWEEK FROM INTERACTION_TIMESTAMP) as IsoWeek,
 EXTRACT(DATE from INTERACTION_TIMESTAMP) as date,
 EXTRACT(DAYOFWEEK FROM INTERACTION_TIMESTAMP)-1 as DayOfWeek,
 FORMAT_TIMESTAMP("%H", INTERACTION_TIMESTAMP, "UTC") as Time,
 CONCAT(CAST(JOURNEY_ID AS STRING),"-", CAST(JOURNEY_ACTIONID AS STRING)) as JobId,
CASE 
 WHEN INTERACTION_TYPE = 0 THEN "open"
 WHEN INTERACTION_TYPE = 1 THEN "click"
 ELSE null
END AS Open_Click
FROM
 `XXXXXXXXX.database_name`

错误消息是什么?@ECris,消息说“未能解析输入字符串”2019-06-05 00:00:00+00(错误代码:invaidQuery)“您的列交互时间戳是一个时间戳,
parse时间戳(格式字符串,字符串[,时区])
使用字符串而不是时间戳。使用
EXTRACT(HOUR from..)
提取小时。或者更好的方法是:
EXTRACT(TIME from INTERACTION\u TIMESTAMP)
您的费率较低。重要提示-您可以使用投递答案左侧投票下方的勾号
标记接受答案
。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。。。当有人回答你的问题时,你可以检查一下该做什么。遵循这些简单的规则,你可以提高自己的声望得分,同时让我们有动力来回答你的问题:O)请考虑!错误消息是什么?@ECris,消息说“未能解析输入字符串”2019-06-05 00:00:00+00(错误代码:invaidQuery)“您的列交互时间戳是一个时间戳,
parse时间戳(格式字符串,字符串[,时区])
使用字符串而不是时间戳。使用
EXTRACT(HOUR from..)
提取小时。或者更好的方法是:
EXTRACT(TIME from INTERACTION\u TIMESTAMP)
您的费率较低。重要提示-您可以使用投递答案左侧投票下方的勾号
标记接受答案
。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。。。当有人回答你的问题时,你可以检查一下该做什么。遵循这些简单的规则,你可以提高自己的声望得分,同时让我们有动力来回答你的问题:O)请考虑!