如何计算 BigQuery 中 2 个时间戳变量之间的分钟差? (标准 SQL)
How can I calculate the difference in Minutes between 2 Timestamp-variables in BigQuery? (Standard SQL)
我有 2 列 started_at 和 ended_at(均为时间戳)并尝试以分钟为单位计算确切的差异,但不知何故它不想工作。
我已经在寻找类似的问题,但它对我不起作用..
started_at
ended_at
2021-01-02 16:22:53 UTC
2021-01-02 16:43:40 UTC
...
...
我试过的:
EXTRACT (DATE FROM started_at) AS start_ymd,
EXTRACT (TIME FROM started_at) AS start_time,
EXTRACT (DATE FROM ended_at) AS end_ymd,
EXTRACT (TIME FROM ended_at) AS end_time
结果采用 yyyy-mm-dd 格式,但我不知道如何处理这些摘录。
下面的标准方法适用于 2 个单一时间戳:
SELECT
TIMESTAMP("2010-07-07 10:20:00+00") AS later_timestamp,
TIMESTAMP("2008-12-25 15:30:00+00") AS earlier_timestamp,
TIMESTAMP_DIFF(TIMESTAMP "2010-07-07 10:20:00+00", TIMESTAMP "2008-12-25 15:30:00+00", HOUR) AS hours;
但我有 2 列 的数百万数据,但我不知道如何计算每个时差。
非常感谢大家,我从 6 小时开始就在处理这个小问题 smh
试试这个:TIMESTAMP_DIFF(ended_at, started_at, minute)
官方文档是here
您提到的“标准方法”应该可以正常工作,您只需要输入一个 table 名称(您的查询本身会区分两个常量值,因此 returns 一个结果) :
SELECT
started_at,
ended_at,
TIMESTAMP_DIFF(started_at, ended_at, MINUTE) AS minutes_between
FROM
yourtablenamehere
用于 200 万行 table 称为 yourtablenamehere
它产生 200 万个时间戳差异 - 运行 小心
我有 2 列 started_at 和 ended_at(均为时间戳)并尝试以分钟为单位计算确切的差异,但不知何故它不想工作。 我已经在寻找类似的问题,但它对我不起作用..
started_at | ended_at |
---|---|
2021-01-02 16:22:53 UTC | 2021-01-02 16:43:40 UTC |
... | ... |
我试过的:
EXTRACT (DATE FROM started_at) AS start_ymd,
EXTRACT (TIME FROM started_at) AS start_time,
EXTRACT (DATE FROM ended_at) AS end_ymd,
EXTRACT (TIME FROM ended_at) AS end_time
结果采用 yyyy-mm-dd 格式,但我不知道如何处理这些摘录。
下面的标准方法适用于 2 个单一时间戳:
SELECT
TIMESTAMP("2010-07-07 10:20:00+00") AS later_timestamp,
TIMESTAMP("2008-12-25 15:30:00+00") AS earlier_timestamp,
TIMESTAMP_DIFF(TIMESTAMP "2010-07-07 10:20:00+00", TIMESTAMP "2008-12-25 15:30:00+00", HOUR) AS hours;
但我有 2 列 的数百万数据,但我不知道如何计算每个时差。 非常感谢大家,我从 6 小时开始就在处理这个小问题 smh
试试这个:TIMESTAMP_DIFF(ended_at, started_at, minute)
官方文档是here
您提到的“标准方法”应该可以正常工作,您只需要输入一个 table 名称(您的查询本身会区分两个常量值,因此 returns 一个结果) :
SELECT
started_at,
ended_at,
TIMESTAMP_DIFF(started_at, ended_at, MINUTE) AS minutes_between
FROM
yourtablenamehere
用于 200 万行 table 称为 yourtablenamehere
它产生 200 万个时间戳差异 - 运行 小心