Использование regexp_replace:
with your_data as (
select stack(
'2020-03-09T07:34:06:825Z',
'2020-03-09T07:54:12:220Z',
'2020-03-09T03:54:11:041Z',
'2020-03-09T09:22:10:220Z',
'2020-03-09T11:13:36:217Z',
'2020-03-09T11:23:26:040Z',
'2020-03-09T11:43:35:721Z'
) as str
)
select regexp_replace(str,'(\\d{4}-\\d{2}-\\d{2})T(\\d{2}).*','$1T$2:00:00')
from your_data;
Результат:
2020-03-09T07:00:00
2020-03-09T07:00:00
2020-03-09T03:00:00
2020-03-09T09:00:00
2020-03-09T11:00:00
2020-03-09T11:00:00
2020-03-09T11:00:00
Объяснение:
Регулярное выражение определяет две группы:
$ 1 - часть даты (\\d{4}-\\d{2}-\\d{2})
$ 2 - это часовая часть после T '(\ d {2})', все остальное в конце .*
игнорируется.
Вы извлекаете '$1T$2:00:00'