如何在新列中添加原始日期的天数

How do I add number of days from original dates in new column

希望 BigQuery 上的一个快速查询

我尝试了间隔和天数,但似乎无法得到我想要的。对于下面示例 table 中的日期行,我希望新列中的相邻行仅将原始日期和时间增加 42 天(如果有帮助,时间始终为 00:00:00)。

下面的期望输出:

original_datetime date_time_plus_42_days
2016-04-01T00:00:00 plus 42 days to left column
2016-05-04T00:00:00 plus 42 days to left column
2018-05-17T00:00:00 plus 42 days to left column
2019-09-01T00:00:00 plus 42 days to left column
2016-04-01T00:00:00 plus 42 days to left column

您要找的函数叫做:DATETIME_ADD。已记录 here

例如:

WITH table AS (
     SELECT DATETIME("2016-04-01T00:00:00") AS datetime)
SELECT
  datetime,
  DATETIME_ADD(datetime, INTERVAL 42 DAY) as datetime_plus_42
FROM table;

另请考虑以下明确使用区间数据类型的方法

select original_datetime,
  original_datetime + interval 42 day as date_time_plus_42_days
from your_table          

如果应用于您问题中的样本数据

with your_table as (
  select datetime '2016-04-01T00:00:00' original_datetime union all
  select '2016-05-04T00:00:00' union all
  select '2018-05-17T00:00:00' union all
  select '2019-09-01T00:00:00' union all
  select '2016-04-01T00:00:00' 
)                 

输出是

使用间隔数据类型的好处是一次可以添加多个单位——例如,不仅是天,还有小时,如下例所示

select original_datetime,
  original_datetime + make_interval(day => 42, hour => 5) as date_time_plus_42_days
from your_table

有输出