BigQuery PARSE_TIMESTAMP не удалось проанализировать строку

Я пытаюсь преобразовать строку в формат метки времени в BigQuery.
В источнике все даты указаны в формате «15.10, 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», что мне кажется правильным, но когда я запускаю ее, я получаю сообщение об ошибке:

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

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

Спасибо!


person Matt    schedule 16.10.2018    source источник


Ответы (2)


Я думаю, вы были почти у цели, но ваш день и месяц были неправильными, поэтому он пытался получить 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)]
  )
)
person Bobbylank    schedule 16.10.2018

Ниже приведен стандартный SQL BigQuery.

SELECT
PARSE_TIMESTAMP('%Y/%m/%d %I:%M %p', 
  CONCAT(FORMAT_DATE('%Y/',CURRENT_DATE()),'10/15 5:00 PM')
)
person Mikhail Berlyant    schedule 16.10.2018