1. 概述
1.1 应用场景
1)API 接口中,有大量数据,且可通过开始日期和结束日期参数取出数据。

2)数据库表中存在大量数据,且存在日期字段,若一次性取出,会占用过多数据库内存或网络带宽,影响其他业务。
1.2 实现思路
场景模拟-待取出数据:

场景模拟-思路说明:
1)参数列表中,定义两个参数 a 和 b ,值为第一个时间段的开始时间和结束时间,分别为2025-12-10、2025-12-13。
2)将日期字段分段,每次取出一个时间段的数据(本文示例中,每个时间段相差3天),直至取出所有数据。

取出数据时的筛选条件:时间段的开始日期<=入库日期<时间段的结束日期
| 循环次数 | 开始日期(参数a) | 结束日期(参数b) | 说明 |
|---|---|---|---|
| 第一次循环 | 2025-12-10 | 2025-12-13 | 取出该时间段内的数据 |
| 第二次循环 | 2025-12-13 | 2025-12-16 | 取出该时间段内的数据 |
| 第三次循环 | 2025-12-16 | 2025-12-19 |
|
| 第四次循环 | 2025-12-19 | 结束循环 |
「参数赋值」节点输出一个参数(参数名为结束条件),参数值为日期字段最大值。
使用「数据同步」节点取出时间段内的数据;将本次时间段的参数 b 赋值给下次时间段的参数 a ,下次时间段的参数 b 值为:本次时间段的参数 b+3 天。
注:参数同名时,优先级逻辑:「参数赋值」设置的参数>「自定义参数」。
2. 操作步骤
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「日期序列循环取数(日期序列在循环容器内生成)」。
2.1 第一个时间段定义为参数
新建定时任务后,点击「参数列表」,新建两个参数,值为第一个时间段的起始日期和结束日期。如下图所示:

2.2 定义循环容器结束条件
1)拖入「参数赋值」节点,取出来源表中日期字段最大值。如下图所示:

2)点击「输出参数」Tab,将日期字段最大值输出为参数(参数名为结束条件)。如下图所示:

3)拖入「循环容器」节点,循环方式选择条件循环,执行条件设置为参数a<=参数结束条件。如下图所示:

2.3 取出时间段内的数据
1)循环容器内拖入数据同步节点,取出时间段内的数据,筛选条件设置为:时间段的开始日期<=入库日期<时间段的结束日期

点击「数据预览」,可查看取出的数据。

2)将取出的数据输出到目标表中。如下图所示:

2.4 生成下次取数时间段的值
1)拖入「参数赋值」节点,将本次取数时的结束时间赋值给下次取数时的开始时间,即将参数b的值赋值给参数a。如下图所示:

2)再拖入一个「参数赋值」节点,将本次取数时的结束时间+3天,赋值给下次取数时的结束时间,即参数b+3天的值赋值给参数b。如下图所示:

2.5 效果查看
运行定时任务后,可看到取出所有数据。目标表数据如下图所示:

最后一次循环的执行详情为:

