我在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并将其替换为空格?
谢谢你的帮助。
发布于 2021-04-09 03:29:51
如果您想要做的是用一个空格:replace(column_name, 'T', ' ')
替换T
。如果你想从你的ISO8601字符串中得到一个TIMESTAMP
:from_iso8601_timestamp(column_name)
。
https://stackoverflow.com/questions/67010002
复制相似问题