gpt4 book ai didi

正则表达式从 postgresql 中的时间戳字符串中间删除 "-"

转载 作者:行者123 更新时间:2023-11-29 11:38:43 25 4
gpt4 key购买 nike

我有一个表格,其中 hour 列的 timestamp 格式不正确:

        hour         
---------------------
2014-12-06-01:44:35
2014-12-06-01:44:35
2014-12-06-01:44:35
2014-12-06-01:44:35
2014-12-06-01:44:35
2014-12-06-01:44:35

我想用 ' ' 替换中间的 -,所以它看起来像这样:

        hour         
---------------------
2014-12-06 01:44:35
2014-12-06 01:44:35
2014-12-06 01:44:35
2014-12-06 01:44:35
2014-12-06 01:44:35
2014-12-06 01:44:35

我已经试过了:

select regexp_replace(hour, '\d{4}-\d{2}-\d{2}(-)\d{2}:\d{2}:\d{2}', ' ')
from my_table;

但不幸的是,这没有任何区别。
我使用的是 Redshift,而不是 PostgreSQL。

最佳答案

在 postgresql 中创建 Regex 表达式时需要考虑一些事情。首先,您需要转义反斜杠。因此,您需要 \\ 而不是 \。其次,您可以通过使用\n 来捕获括号中的第 n 个组来引用捕获组。您可以在替换值中使用捕获组来引用原始字符串的部分内容。

将所有这些放在一起,这就是您需要的:

regexp_replace('hour', '(\\d{4}-\\d{2}-\\d{2})-(\\d{2}:\\d{2}:\\d{2})', '\\1 \\2') 

关于正则表达式从 postgresql 中的时间戳字符串中间删除 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com