首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将测试bigquery的所有日期增加1年

如何将测试bigquery的所有日期增加1年
EN

Stack Overflow用户
提问于 2020-02-10 06:46:59
回答 3查看 636关注 0票数 0

如下图所示,请你帮我增加一下,我真的是lost.The官方教程还不清楚。我只是个菜鸟,只是想学习。实际

代码语言:javascript
复制
+------------+
| date       |
+------------+
| 2015-06-01 |
| 2015-06-02 |
| 2015-06-03 |
| ...        |
| 2016-07-11 |
+------------+

期望的

代码语言:javascript
复制
+------------+
| date       |
+------------+
| 2016-06-01 |
| 2016-06-02 |
| 2016-06-03 |
| ...        |
| 2017-07-11 |
+------------+
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-10 08:37:41

根据文档,您可以使用DATE_ADD()函数,它将指定的时间间隔添加到日期。语法是:

代码语言:javascript
复制
DATE_ADD(date_expression, INTERVAL INT64_expr date_part)

注意,表达式中的第一个参数是日期,第二个参数是INT64。因此,如果您的字段不是日期格式,则可以使用CAST()将其解析为日期格式。

查询语法如下:

代码语言:javascript
复制
SELECT DATE_ADD(CAST(your_field as DATE), INTERVAL 1 YEAR) AS date_increased
FROM table_source

另一种方法是使用UPDATE方法,您可以阅读更多关于这里的内容。此方法直接在源表中更新选定的field_values。您的语法如下:

代码语言:javascript
复制
UPDATE
  `source_table`
SET
  date_field = DATE_ADD(date_field, INTERVAL 1 year)
WHERE
  TRUE

注意,这两个方法之间的区别在于第一个方法创建了一个新视图,第二个方法修改了源表。

票数 1
EN

Stack Overflow用户

发布于 2020-02-10 07:48:22

语法是:

代码语言:javascript
复制
SELECT DATE_ADD(DATE "2015-06-01", INTERVAL 1 YEAR) as one_year_later;
票数 2
EN

Stack Overflow用户

发布于 2020-02-10 08:24:53

我想出来了,也许不是最理想的方法。回答是为了让其他面临同样障碍的人能够提到这一点。

更新[table_name] set your_col_date=cast( CONCAT('2020',SUBSTR(cast(your_col_date作为字符串),5)为日期),其中_col_date>2018-01-01;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60145319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档