Regex 红移正则表达式

Regex 红移正则表达式,regex,amazon-web-services,amazon-redshift,Regex,Amazon Web Services,Amazon Redshift,我有一份以以下格式提供的数据- 2016-006-011 04:58:22.058 这是不正确的日期/时间戳格式,为了将其转换为正确的格式,如下所示- 2016-06-1104:58:22.058 我正在尝试使用红移中的正则表达式来实现这一点。是否有办法使用正则表达式删除日期和月份部分中的附加零(0)。我需要一些更通用的东西,而不仅仅是这个例子的细节,因为日期会有所不同。函数regexp\u replace()(请参阅)应该可以实现以下功能: select regexp_replace(

我有一份以以下格式提供的数据-

2016-006-011 04:58:22.058

这是不正确的日期/时间戳格式,为了将其转换为正确的格式,如下所示-

2016-06-1104:58:22.058


我正在尝试使用红移中的正则表达式来实现这一点。是否有办法使用正则表达式删除日期和月份部分中的附加零(0)。我需要一些更通用的东西,而不仅仅是这个例子的细节,因为日期会有所不同。

函数
regexp\u replace()
(请参阅)应该可以实现以下功能:

select
    regexp_replace(
      '2016-006-011 04:58:22.058'  -- use your date column here instead
    , '\-0([0-9]{2}\-)0([0-9]{2})' -- matches "-006-011", captures "06-" in $1, "11" in $2
    , '-$1$2'                      -- inserts $1 and $2 to give "-06-11"
    )
;
因此,根据需要,结果是:

regexp\u替换
-------------------------
2016-06-11 04:58:22.058
(1排)
查找
(\d{4}-)\d?(\d{2}-)\d?(\d{2})
替换
$1$2$3
,您必须定义通用日期格式。收集所有使用的日期格式,生成一个通用正则表达式。