#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 между датой и временем..