在文本中查找日期和时间值,然后更新另一列
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
在 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