跳到主要内容
AZ Tools

日期范围分割

把一个日期范围分成最多 50 个相等的分块——适合分块报告、冲刺日历、月度队列、每次请求限制时间窗口的 API 回填,以及跨长时间段的批处理任务。计算以毫秒精度进行:先把时间跨度均分为 N 份,再把每个边界对齐到你本地时区的零点,因此在按整天输出的前提下分块尽可能均匀。区间模式列出每个分块的开始、结束和天数;边界点模式只列出 N+1 个切分日期,可直接粘贴进查询或脚本。全部在浏览器中运行,输入只保存在本地。 有两个语义值得了解:开启「包含结束日」时,最后一天归属最后一个分块(即“截至 6 月 30 日”的自然理解);关闭则得到半开区间 [start, end) 的分割。另外在区间模式中,每个分块的结束等于下一个分块的开始,因此相邻行恰好铺满整个范围,既无缝隙也不会重复计天。

输出:
分割
  • #12026-08-21 → 2026-11-2091d
  • #22026-11-20 → 2027-02-2092d
  • #32027-02-20 → 2027-05-2291d
  • #42027-05-22 → 2027-08-2292d

边界按你本地时区对齐到零点。

使用方法

  1. 选择开始日期、结束日期,以及想要的区间数(1–50)。
  2. 选择输出:区间模式把每个分块显示为开始 → 结束并附天数;边界点模式只显示 N+1 个切分日期。
  3. 根据最后一天应计入范围内(开)还是作为排他端点(关),切换「包含结束日」。
  4. 用复制按钮一次抓取所有行——每行一条,直接可用于电子表格或脚本。

常见问题

如果范围不能整除会怎样?
分割先按毫秒计算,再把每个边界对齐到本地零点,因此某些分块可能比其他分块长或短一天。舍入误差分散在各个边界上,而不是全部堆到最后一个分块,使区间在按整天输出的前提下尽量均衡。
什么时候选边界点而不是区间?
边界点恰好是可以直接喂给 `BETWEEN` 子句、分区函数或日期窗口循环的切分点——无需再配对起止日期。而当人工阅读排期、想一眼看到每个分块的天数时,区间模式更合适。
为什么每个分块的结束等于下一个分块的开始?
各行遵循半开区间 [start, end) 的惯例:共享边界归属于后一个分块,因此没有任何一天被重复计算,也没有一天落入缝隙。如果报表需要每块的包含式结束日期,复制后把每个结束列减去一天即可。
时区和夏令时如何处理?
所有日期都按浏览器本地时区的零点解释,每个计算出的边界也会重新对齐到本地零点,因此输出永远是干净的整数日期——不会出现半天或奇怪的时刻。范围内若有夏令时切换,原始的毫秒切分点会偏移一小时;对齐之后,最多是让恰好落在零点附近的边界移到相邻一天——与上文所述的整天舍入是同一种现象。
能按日历月份或季度分割吗?
不能——它按经过的时间把跨度分成等长的分块。把一年分成 4 份得到约 91 天的分块,只是日历季度的近似(1–3 月是 90 天,7–9 月是 92 天)。需要严格的日历周期时,请自行列出月份或季度的起始日;当分块必须等长时再用本工具。

相关工具