在文本中查找日期和时间值,然后更新另一列

时间:2017-03-26 07:41:06

标签: postgresql postgresql-9.5

在postgresql表中,我有一个文本列,其中存储日期如下:

“创建于2015-02-12 12:33:33”

或者像这样:

“由Ivan创建于2015-02-14 14:03:42”或“开始日期:2015-02-15 08:44:08”

文本中只有一个日期,但对于某些行,根本没有日期值。

示例:“由Igor创建”

我需要找到这些日期和时间值,并使用这些值更新另一个时间戳列。

谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

注意:这仅在以下情况下才有效:如果日期和时间值始终采用格式,则表示您发布了相关内容。

UPDATE your_table SET
datetime_column = 
CASE 
WHEN text_column ~ '\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}' THEN regexp_replace(text_column, '.*(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}).*', '\1')::TIMESTAMP
END