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

Find date and time values in text and then update another column

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

"Created at 2015-02-12 12:33:33"

或者像这样:

"Created at 2015-02-14 14:03:42 by Ivan" 或 "Start date: 2015-02-15 08:44:08"

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

示例:"Created by Igor"

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

谢谢!

试试这个:

注意:这仅在日期和时间值始终采用格式的情况下有效,您发布了问题。

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}).*', '')::TIMESTAMP
END