BigQuery PARSE_TIMESTAMP не удалось проанализировать строку - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь преобразовать строку в формат метки времени в BigQuery.
В источнике есть все даты в формате "15.10.15 23:59".

Вот что я пытаюсьв качестве подтверждения концепции:

SELECT
PARSE_TIMESTAMP(
'%d/%m/%y %I:%M %p',
  CONCAT(SPLIT('10/15 5:00 PM', ' ')[offset(0)] 
    ,'/',FORMAT_DATE('%y',CURRENT_DATE()),' '
    ,SPLIT('10/15 5:00 PM', ' ')[offset(1)],' '
    ,SPLIT('10/15 5:00 PM', ' ')[offset(2)]
  )
)

Строка, которую она генерирует: «15.10.18 17:00», что мне кажется правильным, но когда я ее запускаю, я получаю ошибку:

Ошибка запроса Query: не удалось проанализировать входную строку "15.10.18 17:00"

Есть какие-нибудь идеи, что еще я мог бы попытаться отформатировать как метку времени?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Ниже для BigQuery Standard SQL

SELECT
PARSE_TIMESTAMP('%Y/%m/%d %I:%M %p', 
  CONCAT(FORMAT_DATE('%Y/',CURRENT_DATE()),'10/15 5:00 PM')
)
0 голосов
/ 16 октября 2018

Я думаю, что вы были почти там, но ваш день и месяц были неправильными, поэтому он пытался получить 15-й месяц.

SELECT
PARSE_TIMESTAMP(
'%m/%d/%y %I:%M %p',
  CONCAT(SPLIT('10/15 5:00 PM', ' ')[offset(0)] 
    ,'/',FORMAT_DATE('%y',CURRENT_DATE()),' '
    ,SPLIT('10/15 5:00 PM', ' ')[offset(1)],' '
    ,SPLIT('10/15 5:00 PM', ' ')[offset(2)]
  )
)
...