Как преобразовать строковый столбец даты в столбец даты в Google Big Query? - PullRequest
0 голосов
/ 20 марта 2019

Я много искал в Интернете и переполнение стека, но не нашел удовлетворительного ответа на этот вопрос.

Я пытаюсь преобразовать столбец строковой даты (как показано ниже) из таблицы в формат столбца даты:

Дата:

20190303

20190304

20190305

20190306

в

Дата:

2019/03/03

2019/03/04

2019/03/04

2019/03/05

2019/03/06.

Я пробовал следующий запрос:

SELECT cast(concat(SUBSTR(date,0,4),'/',SUBSTR(date,5,2),'/',SUBSTR(date,7,2))) as date   
FROM `tfa-big-query.74006564.ga_sessions_*`  
LIMIT 10

Выдает ошибку: «Неверная дата: '2019/03/03"

Я думаю, что должен преобразовать его, используя PARSE_DATE в GBQ, но я не могу этого сделать.

Заранее спасибо.

1 Ответ

2 голосов
/ 20 марта 2019

Ниже для BigQuery Standard SQL

#standardSQL
SELECT date_as_yyymmdd, 
  PARSE_DATE('%Y%m%d', date_as_yyymmdd) AS date_as_date
FROM `project.dataset.table`  

вы можете протестировать его с примерами данных из вашего вопроса, как в примере ниже

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '20190303' date_as_yyymmdd UNION ALL
  SELECT '20190304' UNION ALL
  SELECT '20190305' UNION ALL
  SELECT '20190306' 
)
SELECT date_as_yyymmdd, 
  PARSE_DATE('%Y%m%d', date_as_yyymmdd) AS date_as_date
FROM `project.dataset.table`

с результатом как

Row date_as_yyymmdd date_as_date     
1   20190303        2019-03-03   
2   20190304        2019-03-04   
3   20190305        2019-03-05   
4   20190306        2019-03-06    

Примечание: 2019/03/03 не является правильным представлением типа DATE в BigQuery - таким образом, вы видите ошибку - "Invalid date: '2019/03/03"

Но если по какой-то причине вам нужен этот формат - вы можете добавить FORMAT_DATE() всмесь как в примере ниже

FORMAT_DATE('%Y/%m/%d', PARSE_DATE('%Y%m%d', date_as_yyymmdd))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...