Конвертировать YYYY-MM-DD в YYYYMMDD и вставить в разделенную таблицу Big query - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь выполнить преобразование даты столбца из ГГГГ-ММ-ДД в ГГГГММДД и вставить окончательное значение в большую секционированную таблицу запроса.

Я получаю ошибку как "недопустимое значение" после преобразования .

Я попробовал следующее,

CASE WHEN o_date is not null THEN PARSE_DATE("%Y%m%d",cast(a.o_date as string))
ELSE PARSE_DATE("%Y%m%d",'19000101')
END as o_date

или

CASE WHEN o_date is not null THEN cast(FORMAT_DATE("%Y%m%d",o_date) as DATE)
ELSE PARSE_DATE("%Y%m%d",'19000101')
END as o_date

Не могли бы вы помочь достичь того же

Приветствия!

1 Ответ

1 голос
/ 31 января 2020

Вместо использования PARSE_DATE вы можете использовать FORMAT_DATE . В соответствии с документацией он форматирует выражение даты_ в соответствии со строкой формата следующим образом:

FORMAT_DATE (format_string, date_expr)

Обратите внимание, что format_string должно быть STRING, и его следует записывать в двойных кавычках после словаря этих элементов форматирования и date_expr должны быть DATE.

Я запустил приведенный ниже запрос, чтобы показать, как это должно быть:

WITH
  a AS (
  SELECT
    "2020-01-31" AS date )
SELECT
  FORMAT_DATE("%Y%m%d", CAST(date AS DATE)) AS new_date
FROM
  a

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

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