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

如何从Python配置文件自动获取最近5天API增量数据

自动获取最近5天增量数据的SQL配置问题

当前配置文件片段

[
 {
   "id" : 123,
   "input":{
    "name" : "",
    "path" : "",
    "format": "", 
    "paramters":{
                 "table_name" : "test"
      },
     "query" : "select * from test where type_id='1234' and time>= '2023-04-20T00:46:26+00:00'"
  }
}
]

需求与问题

目前需要手动修改SQL查询中的时间参数才能获取增量数据,希望实现无需手动改日期、自动拉取最近5天数据的效果。尝试过以下两种写法均无输出:

  • time >= 'DATE(NOW())-INTERVAL 7 DAY'
  • time = DateDiff(left(time,19), today(), day) <5(理论逻辑可行,但无法在Python中正常传递)

解决方法

方案1:直接使用数据库原生日期函数(推荐)

之前的写法错误在于把日期函数用单引号包裹,导致数据库将其当作普通字符串而非可执行逻辑。去掉单引号,根据你的数据库类型选择对应写法:

MySQL/MariaDB 版本

如果time字段是UTC时区:

select * from test where type_id='1234' and time >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 5 DAY)

如果是本地时区:

select * from test where type_id='1234' and time >= DATE_SUB(NOW(), INTERVAL 5 DAY)
PostgreSQL 版本

UTC时区兼容写法:

select * from test where type_id='1234' and time >= CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - INTERVAL '5 days'

本地时区写法:

select * from test where type_id='1234' and time >= NOW() - INTERVAL '5 days'

将上述SQL直接替换配置文件中的query字段即可,无需手动修改日期。

方案2:Python侧计算日期后注入SQL

如果API不支持解析SQL中的函数,可在Python脚本中动态计算时间并替换配置:

import json
from datetime import datetime, timedelta

# 加载配置文件
with open('config.json', 'r') as f:
    config = json.load(f)

# 生成5天前的UTC时间,格式匹配原SQL
five_days_ago = (datetime.utcnow() - timedelta(days=5)).strftime('%Y-%m-%dT%H:%M:%S+00:00')

# 替换SQL中的时间条件
for item in config:
    item['input']['query'] = item['input']['query'].replace(
        "time>= '2023-04-20T00:46:26+00:00'", 
        f"time>= '{five_days_ago}'"
    )

# 用修改后的配置调用API
# your_api_call(config)

每次运行脚本时,会自动计算最近5天的时间并更新SQL,无需手动修改配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:28:20