我有一个表,希望更新查询以更新dob
Web Browser
我想从------------
dob
------------
19101984
19111984
19071985
19081985
19101985
19121985
删除子字符串到position 5
表示结果表中的意思是:
character length of 2
答案 0 :(得分:1)
使用regex_replace
:
select regexp_replace(dob::text, '(\d{4})\d{2}(\d{2})', E'\\1\\2')
from your_table;
更新:
update your_table
set dob = regexp_replace(dob, '(\d{4})\d{2}(\d{2})', E'\\1\\2');
这里使用的正则表达式模式是:
(\d{4})\d{2}(\d{2})
^^^^ ^^^^ <-- capture groups
分别在第1组和第2组中捕获前四位和后两位数字。然后,我们只需替换第一个和第二个捕获组。
目前尚不清楚dob
列是否为文字。如果是数字,那么您应该能够转换为文本并运行上述查询。