StandardSQL: невозможно извлечь DAY из метки времени

Я не могу извлечь дни из переменной временной метки с именем repository.created_at с помощью функции EXTRACT().

#standardSQL
SELECT repository.created_at AS fechas,
       EXTRACT(DAY FROM DATE repository.created_at)
FROM `bigquery-public-data.samples.github_nested`
LIMIT 100

Как это решить?


person Mario M.    schedule 23.06.2017    source источник


Ответы (1)


Поле repository.created_at имеет тип STRING. Вам нужно проанализировать его как дату, прежде чем извлекать день.

Это должно работать:

SELECT repository.created_at AS fechas,
       EXTRACT(DAY FROM PARSE_DATE("%Y/%m/%d", 
SUBSTR(repository.created_at, 0, 10)))
FROM `bigquery-public-data.samples.github_nested`
LIMIT 100
person Wouter    schedule 23.06.2017
comment
Большое спасибо @Wouter. Я пытаюсь перенести весь свой устаревший SQL на стандартный код SQL, и я не знаю, как с этим справиться. - person Mario M.; 23.06.2017
comment
на самом деле это решение дает неправильный результат, так как не учитывает часовой пояс! - person Mikhail Berlyant; 23.06.2017