如何计算 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 万个时间戳差异 - 运行 小心