В наших данных есть отметка времени, например 2021-05-03T14:25:30.195737792Z
, а большой запрос (```CAST('2021-54-03T14:25:30.195737792Z' AS timestamp)```)
завершается со следующей ошибкой:
Invalid timestamp: '2021-05-03T14:25:30.195737792Z'
Как я могу преобразовать метку времени с наносекундами, например, в микросекунд в формате UTC?
Попробуйте ниже
select ts_as_string,
timestamp(regexp_replace(ts_as_string, r'([^.]+)(.)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?', r'\1\2\3\4\5\6\7\8')) ts_as_timestamp
from your_table
если применяется к фиктивным данным, как в вашем примере, - вывод
Более короткая версия
timestamp(regexp_replace(ts_as_string, r'([^.]+)(.)?(\d{0,6})(\d)*', r'\1\2\3'))