You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle中更新JSON字段内TimeStamp属性的格式

针对JSON列中TimeStamp格式修正的UPDATE语句

以下是主流数据库对应的更新语句,用于将audit_info列里AddInfo和ChangeInfo下TimeStamp字段中秒后的冒号替换为小数点:

PostgreSQL

UPDATE the_table
SET audit_info = jsonb_set(
    jsonb_set(
        audit_info::jsonb,
        '{AddInfo,TimeStamp}',
        to_json(regexp_replace((audit_info->'AddInfo'->>'TimeStamp')::text, '(\d{2}):(\d{7}Z)$', '\1.\2', 'g'))::jsonb
    ),
    '{ChangeInfo,TimeStamp}',
    to_json(regexp_replace((audit_info->'ChangeInfo'->>'TimeStamp')::text, '(\d{2}):(\d{7}Z)$', '\1.\2', 'g'))::jsonb
);

MySQL

UPDATE the_table
SET audit_info = JSON_REPLACE(
    JSON_REPLACE(
        audit_info,
        '$.AddInfo.TimeStamp',
        REGEXP_REPLACE(JSON_UNQUOTE(JSON_EXTRACT(audit_info, '$.AddInfo.TimeStamp')), '(\\d{2}):(\\d{7}Z)$', '$1.$2')
    ),
    '$.ChangeInfo.TimeStamp',
    REGEXP_REPLACE(JSON_UNQUOTE(JSON_EXTRACT(audit_info, '$.ChangeInfo.TimeStamp')), '(\\d{2}):(\\d{7}Z)$', '$1.$2')
);

注意事项

  • 执行前建议先备份数据,或添加WHERE条件过滤需要修改的记录,避免不必要的全表更新
  • 正则表达式(\d{2}):(\d{7}Z)$匹配秒数后的冒号及后续7位数字加Z的格式,若你的时间戳小数位长度不同,可调整\d{7}中的数字

内容的提问来源于stack exchange,提问作者Ramakrishna Rayala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:00:46