在postgresql表中,我有一个文本列,其中存储日期如下:
“创建于2015-02-12 12:33:33”
或者像这样:
“由Ivan创建于2015-02-14 14:03:42”或“开始日期:2015-02-15 08:44:08”
文本中只有一个日期,但对于某些行,根本没有日期值。
示例:“由Igor创建”
我需要找到这些日期和时间值,并使用这些值更新另一个时间戳列。
谢谢!
答案 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