如何在新列中添加原始日期的天数
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
有输出
希望 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
有输出