#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. Это обратные ссылки, изменил его на одинарные кавычки здесь, чтобы иметь код в блоке кода.