我有一个包含id列和profile字段的数据库,其中profile字段的类型为jsonb
| 标识符|配置文件字段|
| - -|- -|
| 一百零一|{“1”:“国际象棋”,“2”:“2001年2月8日”}|
| 一百零二|{“1”:“曲棍球”,“2”:“1996年6月9日”}|
在个人资料字段中,关键字2代表出生日期。
遗憾的是,许多字段的值格式为yyyy/mm/dd。
我想以dd/mm/yyyy格式更改所有出生日期值。
预期结果是这样的
| 标题1|标题2|
| - -|- -|
| 一百零一|{“1”:“国际象棋”,“2”:“2001年2月8日”}|
| 一百零二|{“1”:“曲棍球”,“2”:“1996年6月9日”}|
我试着更新更新语句,但我卡住了,我怎么能在多个值中应用?什么将进入where语句。以及如何访问关键字2 profile_fields-〉“2”不在更新语句中。
- 谢谢-谢谢
2条答案
按热度按时间cwtwac6a1#
您可以执行
regexp_replace
以在匹配到无效日期时间格式时改变日期时间格式:See fiddle。
iovurdzv2#
这里使用
||
运算符和regexp_replace
来重新调整日期格式。DB Fiddle
请注意,这种方法(使用
||
运算符)仅适用于第一级键或“平面”JSON。