Строка в DateTime BigQuery

#sql #string #datetime #google-bigquery

#sql #строка #datetime #google-bigquery

Вопрос:

У меня есть столбец со строками в качестве datetimes. Я хочу преобразовать весь столбец в формат datetime.

 Example
"19.03.2020 08:14:13"
"30.04.2020 08:57:45"
  

Я попробовал это:

 select *,
PARSE_DATETIME("%d%m%y %H:%M:%S", Example) as Date_example
from xx.yy.zz
  

но я получил сообщение об ошибке
Не удалось проанализировать входную строку «19.03.2020 08:14:13»

Кто-нибудь может мне помочь и сказать, почему это не работает? Это потому, что день, месяц и год разделены точкой вместо косой черты?

Ответ №1:

Рассмотрим:

 PARSE_DATETIME('%d.%m.%Y %H:%M:%S', example) as Date_example
  

Обоснование:

  • в вашем исходном спецификаторе формата отсутствует разделитель точек между компонентами даты

  • вы хотите %Y , а не %y для компонента year (первый — это 4-значный год, а более поздний — 2 цифры)

Мы можем немного сократить запрос с помощью %T :

 PARSE_DATETIME('%d.%m.%Y %T', example) as Date_example
  

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

1. Большое спасибо! Может быть, вы знаете, почему я получаю 2020-07-05T07:18:48 это T между датой и временем..