Столбец даты, который также содержит нулевые значения

# #sql #date #google-bigquery

Вопрос:

у меня есть столбец под названием startup_date, который определен как СТРОКОВЫЙ тип данных в bigquery

который содержит значение типа «2001-09-09 02:19:38.0 UTC», а также значения null

пожалуйста, помогите использовать функцию преобразования для извлечения только значения даты, а не часов и минут

используемая ниже функция и получение сообщения об ошибке недопустимой строки даты и времени

ИЗВЛЕЧЕНИЕ(дата ИЗ даты-времени(СЛУЧАЙ, когда startup_date = » ТОГДА NULL, ИНАЧЕ startup_date ЗАКАНЧИВАЕТСЯ))

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

1. Попробуйте LEFT функцию — cloud.google.com/bigquery/docs/reference/standard-sql/…

Ответ №1:

Функции DATE и TIMESTAMP делают именно то, что вы ищете. Если у вас есть строковый столбец , соответствующий его формату TIMESTAMP , вы можете просто применить его. Затем DATE будет извлечена только дата, и она позаботится о NULL значениях.

 WITH my_data AS 
(
  SELECT TIMESTAMP("2001-09-09 02:19:38.0 UTC") AS startup_date UNION ALL
  SELECT NULL UNION ALL
  SELECT "2021-10-10 07:29:30.0 UTC"
)

SELECT DATE(startup_date) as date FROM my_data
 

ВОЗВРАТ:
введите описание изображения здесь

Ответ №2:

Вы можете попробовать substr[1] от 1 до 10, чтобы получить дату, а затем вы можете использовать функцию safe.parse_date[2].

 SELECT safe.parse_date('%Y-%m-%d', substr(startup_date, 1, 10)) AS startup_date FROM you_dataset.your_table
 

Он возвращает это:

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

[1] https://cloud.google.com/bigquery/docs/reference/standard-sql/string_functions#substr

[2] https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#parse_date