Невозможно разобрать строку даты в метку времени в BigQuery Standard SQL - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть столбец строки даты в моем наборе данных, и этот столбец строки даты имеет значения даты в форматах, как показано ниже

Некоторые даты имеют формат: 2020-04-22, а некоторые даты имеют формат : 04/22/2020

Пожалуйста, предложите, как преобразовать эти значения даты в формат отметки времени: 2020-04-22 00:00:00 UT C

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вам нужно нормализовать обе даты. Попробуйте использовать:

SELECT
   COALESCE(SAFE.PARSE_DATE('%F', your_date_field), SAFE.PARSE_DATE('%m/%d/%Y', your_date_field)) AS your_new_date_field
FROM ...

0 голосов
/ 22 апреля 2020

Если все строки строго соответствуют одному или другому формату, вы можете сделать условную логику c:

PARSE_TIMESTAMP(
    CASE 
        WHEN REGEXP_CONTAINS(mydate, r"^\d{4}-\d{2}-\d{2}$" THEN "%F"
        WHEN REGEXP_CONTAINS(mydate, r"^\d{2}/\d{2}/\d{4}$" THEN "%m/%d/%Y"
    END,
    mydate
)

Возможно, вы захотите использовать SAFE.PARSE_TIMESTAMP() вместо PARSE_TIMESTAMP() для предотвращения сбоев преобразования в несравненных форматах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...