如何在Big Query中将访问开始时间转换为可读的人类日期或时间戳?

Tho*_*ain 2 sql timestamp google-bigquery bigquery-standard-sql

我正在尝试将在大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。

我正在使用标准SQL。

我尝试使用sec_to_timestamp,但我相信这仅适用于BQ中的旧版SQL。

Google文档讨论了从日期表达式和字符串表达式转换为时间戳的方法,但是访问开始时间是一个整数。

https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators

我查看了以下链接,并尝试了其中的代码,但收到错误“找不到函数:整数”

大查询-Google Analytics-首次访问和购买之间的时间差

关于BQ捕获的日期/时间的任何其他建议将不胜感激。

谢谢

Ell*_*ard 7

假设您的开始时间相对于Unix纪元以秒为单位,则可以TIMESTAMP_SECONDS用来将其转换为时间戳。例如:

#standardSQL
SELECT
  TIMESTAMP_SECONDS(start_time_sec) AS timestamp
FROM (
  SELECT 1488303123 AS start_time_sec
);
Run Code Online (Sandbox Code Playgroud)

如果要将时间戳转换为日期,则可以使用EXTRACT可选的时区:

#standardSQL
SELECT
  EXTRACT(DATE FROM TIMESTAMP_SECONDS(start_time_sec)
          AT TIME ZONE 'America/Los_Angeles') AS date
FROM (
  SELECT 1488303123 AS start_time_sec
);
Run Code Online (Sandbox Code Playgroud)