Разбор Y-M-D из Y-M-D H-M-S UTC sql bigquery

#sql #date #datetime #parsing #google-bigquery

#sql #Дата #дата и время #синтаксический анализ #google-bigquery

Вопрос:

Мне нужно разобрать '%Y%m%d' из столбца в BigQuery. Мои данные выглядят следующим образом:

 datetime_published
2000-09-25 13:28:15 UTC
2018-12-22 16:03:00 UTC
2018-05-04 03:05:00 UTC
  

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

 SELECT PARSE_DATE('%Y%m%d', datetime_published) as date
  

Сообщение об ошибке: No matching signature for function PARSE_DATE for argument types: STRING, TIMESTAMP. Supported signature: PARSE_DATE(STRING, STRING)
Желаемый результат:
2000-09-25

Ответ №1:

Почему бы просто не преобразовать в дату?

 select date(datetime)
  

Примечание: Это работает как для datetime , так и для timestamp значений. В BigQuery они разные. У вас есть timestamp столбец, который вы назвали datetime — немного неправильное название.

Комментарии:

1. Я отредактировал вопрос и переименовал столбец. Я пробовал select date(datetime_published) , но по какой-то причине он думает, что это функция. Сообщение об ошибке: Function not found: datetime_published

2. @Chique_Code . . . Этот код не должен генерировать эту ошибку. У вас было бы datetime_published(. . .) для вызова функции.

3. и все же это происходит… Это целый код. Это должно быть довольно просто… select datetime_published(datetime) as publish_date from 'metadata_table' limit 200 Ошибка: Function not found: datetime_published at [1:8] Learn More about BigQuery SQL Functions.

4. Почему у вас одинарные кавычки вокруг имени таблицы? И почему у вас есть datetime_published(datetime) ? Этот код не имеет ничего общего с этим ответом.

5. Это обратные ссылки, изменил его на одинарные кавычки здесь, чтобы иметь код в блоке кода.