изменить формат даты в bigquery - PullRequest
0 голосов
/ 21 июня 2020

У меня есть столбец даты как дд-мм-гггг. Я хотел бы преобразовать его в гггг / мм / дд в bigquery. Я написал следующий запрос: SELECT cast (format (Date, 'yyyy / mm / dd') as string) as Date FROM t1.

Ошибка: слишком много аргументов FORMAT для шаблона «23/04/2020»; Ожидается 1; Получил 2.

Не могли бы вы помочь?

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Сначала вам нужно проанализировать дату из строки dd-mm-yyyy, а затем отформатировать ее как yyyy/mm/dd, как показано ниже

FORMAT_DATE('%Y/%m/%d', PARSE_DATE('%d-%m-%Y', day))    

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

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '15-01-2020' day UNION ALL
  SELECT '05-10-2019'
)
SELECT day, FORMAT_DATE('%Y/%m/%d', PARSE_DATE('%d-%m-%Y', day)) AS formated_day
FROM `project.dataset.table`     

с выходом

Row day         formated_day
1   15-01-2020  2020/01/15   
2   05-10-2019  2019/10/05   
0 голосов
/ 21 июня 2020

Вы хотите FORMAT_DATE, а не FORMAT.

SELECT FORMAT_DATE("%Y/%m/%d", DATE "2008-12-25");

Причина, по которой у вас возникли проблемы с FORMAT, заключается в том, что вы дали ему строку формата, которая не Беру никаких параметров. Увидев это, движок barfs: «Мне больше не нужны параметры для рендеринга этой строки».

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