Google bigquery bigquery中的时间戳总和

Google bigquery bigquery中的时间戳总和,google-bigquery,Google Bigquery,如果有一个带有时间戳列和时间列的表,如: +---------------------+----------+ | timestamp_col | time_col | +---------------------+----------+ | 2020-07-03 00:00:00 | 08:34:34 | +---------------------+----------+ 我想加上它们,得到一个时间戳列“2020-07-03 08:34:34”。我尝试过“timestamp_a

如果有一个带有时间戳列和时间列的表,如:

+---------------------+----------+
|    timestamp_col    | time_col |
+---------------------+----------+
| 2020-07-03 00:00:00 | 08:34:34 |
+---------------------+----------+
我想加上它们,得到一个时间戳列“2020-07-03 08:34:34”。我尝试过“timestamp_add”,但我必须将时间列拆分为小时、分钟和秒,然后一个接一个地添加它们,如下所示:

    timestamp_add(
      timestamp_add(
        timestamp_add(timestamp_col
          ,INTERVAL CAST(FORMAT_TIME("%H", time_col) as INT64) HOUR)
          ,INTERVAL CAST(FORMAT_TIME("%M", time_col) as INT64) MINUTE)
          ,INTERVAL CAST(FORMAT_TIME("%S", time_col) as INT64) SECOND)
    as timestamp_sum,

还有更直接的方法吗?

下面是BigQuery标准SQL

假设timestamp_col的时间部分始终是“00:00:00”,正如您的示例中所示,您可以简单地执行以下操作

TIMESTAMP(DATETIME(DATE(timestamp_col), time_col))      
如果上述关于“00:00:00”的假设不适用,请使用下面的

TIMESTAMP_ADD(timestamp_col, INTERVAL UNIX_SECONDS(TIMESTAMP(DATETIME(DATE(1970, 1, 1), time_col))) SECOND)

下面是BigQuery标准SQL

假设timestamp_col的时间部分始终是“00:00:00”,正如您的示例中所示,您可以简单地执行以下操作

TIMESTAMP(DATETIME(DATE(timestamp_col), time_col))      
如果上述关于“00:00:00”的假设不适用,请使用下面的

TIMESTAMP_ADD(timestamp_col, INTERVAL UNIX_SECONDS(TIMESTAMP(DATETIME(DATE(1970, 1, 1), time_col))) SECOND)