Как анализировать значения в столбце с разными строками дат в стандартном SQL в BigQuery

# #date #google-bigquery

#Дата #google-bigquery

Вопрос:

у меня есть столбец в моей таблице в bigquery, в котором есть разные строки даты, которые отформатированы как строки:

 ------------------- | date |  ------------------- |2021-12-31 |  ------------------- |2021-12-25T15:45:00|  ------------------- |2021-11-15 |  ------------------- |2021-12-08T09:00:00|  ------------------- |2021-12-31 |  -------------------  

я пытался использовать

 EXTRACT(DATE FROM PARSE_TIMESTAMP("%FT%T", "2021-12-08T15:45:00")) as date  

но это не работает для строки даты ГГГГ-ММ-ДД. Я получаю сообщение об ошибке

Не удалось проанализировать входную строку «2021-12-31

И когда я пытаюсь

 PARSE_DATE('%Y%m%d', LEFT("2021-12-21T15:45:00", 10)) AS date  

я получаю одно и то же сообщение об ошибке для обоих типов строк этого столбца.

Как я могу отформатировать строки в датах в форме ГГГГ-ММ-ДД?

Ответ №1:

Рассмотрим ниже простой подход

 select *, date(date_string) as date_date from your_table   

если применить к образцам данных, как в вашем вопросе

 with your_table as (  select '2021-12-31' date_string union all  select '2021-12-25T15:45:00' union all  select '2021-11-15' union all  select '2021-12-08T09:00:00' union all  select '2021-12-31'  )   

выход есть

введите описание изображения здесь

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

1. Ну, это не могло быть проще. Спасибо! Это прекрасно работает.