我在 AWS 日志文件中有一个时间戳,格式如下:2021-04-04T12:21:29Z
这个正则表达式会将时间戳分为三组:
(?<utcDate>[0-9]{4}-[0-9]{2}-[0-9]{2})(?:T)(?<utcTime>[0-9]{2}:[0-9]{2}:[0-9]{2})
输出:2021-04-04T12:21:29
我正在尝试用空格替换 T 以创建有效的时间戳格式,以通过 AWS Athena 导入 SQL 时间戳列。我已经在我的 select 语句中使用 date_parse 将两个 utcDate 和 utcTime 组连接成一个时间戳。但是我想在我的表中有一个时间戳,这样我就可以在我的 where 子句中查询时间戳。
当我将上述正则表达式放入一个由子组组成的组中时,即使 T 是在非捕获组中定义的,它仍然会返回。是否可以匹配一个字符 T 并用空格替换它?
感谢您的帮助。
答案 0 :(得分:0)
如果您想用空格替换 T
:replace(column_name, 'T', ' ')
。如果您想要来自 ISO 8601 字符串的 TIMESTAMP
:from_iso8601_timestamp(column_name)
。