红移中的正则表达式

时间:2016-07-26 14:34:12

标签: regex amazon-web-services amazon-redshift

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

APP_STL := gnustl_shared

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

2016-006-011 04:58:22.058

我试图在redshift中使用正则表达式实现此目的。有没有办法使用正则表达式删除日期和月份部分中的额外零(0)。我需要一些更通用的东西,而不是单独使用这个例子,因为日期会有所不同。

1 个答案:

答案 0 :(得分:1)

函数regexp_replace()(参见documentation)应该可以解决问题:

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_replace
-------------------------
 2016-06-11 04:58:22.058
(1 row)