Как увеличить все даты на 1 год для тестирования bigquery - PullRequest
0 голосов
/ 10 февраля 2020

Не могли бы вы помочь мне увеличить год, как показано ниже, я действительно потерян. Официальные учебные пособия не ясны. Я нуб, просто пытаюсь учиться. Фактический

+------------+
| date       |
+------------+
| 2015-06-01 |
| 2015-06-02 |
| 2015-06-03 |
| ...        |
| 2016-07-11 |
+------------+

Ожидаемый

+------------+
| date       |
+------------+
| 2016-06-01 |
| 2016-06-02 |
| 2016-06-03 |
| ...        |
| 2017-07-11 |
+------------+

Ответы [ 3 ]

1 голос
/ 10 февраля 2020

Согласно документации , вы можете использовать функцию DATE_ADD () , она добавляет указанный интервал времени к дате. Синтаксис:

DATE_ADD(date_expression, INTERVAL INT64_expr date_part)

Обратите внимание, что первый аргумент в выражении является DATE , а второй - INT64 . Поэтому, если ваше поле не имеет формат DATE , вы можете использовать CAST () , чтобы проанализировать его в формате DATE .

Ваш запрос синтаксис будет следующим:

SELECT DATE_ADD(CAST(your_field as DATE), INTERVAL 1 YEAR) AS date_increased
FROM table_source

В качестве альтернативы можно использовать метод UPDATE , о котором вы можете прочитать подробнее о здесь . Этот метод обновляет выбранные значения field_values ​​непосредственно в исходной таблице. Ваш синтаксис будет следующим:

UPDATE
  `source_table`
SET
  date_field = DATE_ADD(date_field, INTERVAL 1 year)
WHERE
  TRUE

Обратите внимание, что разница между этими двумя методами заключается в том, что первый создает новое представление, а второй изменяет исходную таблицу.

Надеюсь, это поможет.

1 голос
/ 10 февраля 2020

Синтаксис:

SELECT DATE_ADD(DATE "2015-06-01", INTERVAL 1 YEAR) as one_year_later;
0 голосов
/ 10 февраля 2020

Я понял это, возможно, не самый оптимальный способ. Отвечая так, чтобы другие, сталкивающиеся с тем же препятствием, могли ссылаться на это.

Обновление [table_name] set your_col_date = cast (CONCAT ('2020', SUBSTR (cast (your_col_date AS STRING), 5 )) как дата) где your_col_date> 2018-01-01;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...