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

求编写脚本:识别SQL语句中的数字并批量增加指定数值

Python脚本:批量修改SQL中指定数字的数值

下面是一个Python脚本,能自动识别SQL语句中的所有数字(包括整数和小数格式的Double值),并给每个数字加上指定的偏移量,最终输出修改后的SQL语句:

import re

def adjust_sql_dates(sql_str, offset):
    # 匹配所有数字(整数、小数)的正则表达式
    def replace_num(match):
        num = float(match.group())
        adjusted_num = num + offset
        # 若结果是整数,转为整数格式输出,否则保留小数
        return str(int(adjusted_num)) if adjusted_num.is_integer() else str(adjusted_num)
    
    return re.sub(r'\d+\.?\d*', replace_num, sql_str)

# 示例用法
original_sql = "SELECT II.Amount from IssuedInvoices II where II.DocDate>=44000 and II.DocDate<=44030"
adjusted_sql = adjust_sql_dates(original_sql, 365)
print(adjusted_sql)

运行结果

执行上述代码后,输出的SQL语句为:

SELECT II.Amount from IssuedInvoices II where II.DocDate>=44365 and II.DocDate<=44395

自定义调整

如果你的SQL中存在非日期类的数字(比如金额、ID)不想被修改,可以修改正则表达式,只匹配特定日期字段后的数字。比如只处理DocDate相关的数值,把函数内的正则替换逻辑改成:

return re.sub(r'(DocDate[<>]=)\s*(\d+\.?\d*)', lambda m: f"{m.group(1)}{float(m.group(2)) + offset}", sql_str)

这样就只会调整DocDate>=或DocDate<=后面的数字,不会影响其他数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:04:54