如何在 Big Query 中将访问开始时间转换为可读的人类日期或时间戳?
How to convert visit start time to a readable human date or timestamp in Big Query?
我正在尝试将在大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。
我使用的是标准 SQL。
我试过使用 sec_to_timestamp,但我相信这只适用于 BQ 中的遗留 SQL。
google 文档讨论了从日期表达式和字符串表达式转换为时间戳,但是访问开始时间是一个整数。
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators
我查看了以下 link 并尝试了其中的代码,但出现错误 "function not found: integer"
Big Query - Google Analytics - Time diff between first visit and purchase
BQ 捕获的关于 dates/times 的任何其他建议将不胜感激。
谢谢
假设您的开始时间是相对于 Unix 纪元的秒数,您可以使用 TIMESTAMP_SECONDS
将其转换为时间戳。例如:
#standardSQL
SELECT
TIMESTAMP_SECONDS(start_time_sec) AS timestamp
FROM (
SELECT 1488303123 AS start_time_sec
);
如果要将时间戳转换为日期,可以使用 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
);
我在 BigQuery 的 ga_realtime_sessions table 中寻找最近的 visitStartTime。我按如下方式传递了时间戳:
SELECT
visitStartTime,
TIMESTAMP_SECONDS(visitStartTime) as starttime_UTC,
DATETIME(TIMESTAMP_SECONDS(visitStartTime), "Europe/Amsterdam") as starttime_LOCAL,
FROM `ga_sessions_*`
ORDER BY visitStartTime desc
LIMIT 30
产生如下记录:
Row visitStartTime starttime_UTC starttime_LOCAL
1 1562153975 2019-07-03 11:39:35 UTC 2019-07-03T13:39:35
我正在尝试将在大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。
我使用的是标准 SQL。
我试过使用 sec_to_timestamp,但我相信这只适用于 BQ 中的遗留 SQL。
google 文档讨论了从日期表达式和字符串表达式转换为时间戳,但是访问开始时间是一个整数。
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators
我查看了以下 link 并尝试了其中的代码,但出现错误 "function not found: integer"
Big Query - Google Analytics - Time diff between first visit and purchase
BQ 捕获的关于 dates/times 的任何其他建议将不胜感激。
谢谢
假设您的开始时间是相对于 Unix 纪元的秒数,您可以使用 TIMESTAMP_SECONDS
将其转换为时间戳。例如:
#standardSQL
SELECT
TIMESTAMP_SECONDS(start_time_sec) AS timestamp
FROM (
SELECT 1488303123 AS start_time_sec
);
如果要将时间戳转换为日期,可以使用 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
);
我在 BigQuery 的 ga_realtime_sessions table 中寻找最近的 visitStartTime。我按如下方式传递了时间戳:
SELECT
visitStartTime,
TIMESTAMP_SECONDS(visitStartTime) as starttime_UTC,
DATETIME(TIMESTAMP_SECONDS(visitStartTime), "Europe/Amsterdam") as starttime_LOCAL,
FROM `ga_sessions_*`
ORDER BY visitStartTime desc
LIMIT 30
产生如下记录:
Row visitStartTime starttime_UTC starttime_LOCAL
1 1562153975 2019-07-03 11:39:35 UTC 2019-07-03T13:39:35