你不能用程序去拆分时间吗?
然后用PreparedStatement去填充SQL里面需要的时间参数。
比如输入查询范围2023-03-01 到2023-04-30
你用Java把时间按15天打散,下面是Gpt给的例子。
public static void main(String[] args) {
// 将日期字符串解析为 LocalDate 对象
LocalDate date = LocalDate.parse("2023-03-01");
// 将日期加上15天
LocalDate result = date.plusDays(15);
// 输出结果
System.out.println(result);
}
然后依葫芦画瓢,循环去加15天,把时间传入去查询。
下面是gpt给的例子:
----------------------------------------------------------------------------------
mport java.time.LocalDate;
public class Main {
public static void main(String[] args) {
// 将日期字符串解析为 LocalDate 对象
LocalDate date = LocalDate.parse("2023-03-01");
// 循环加上15天,直到2023-04-30日
while (date.isBefore(LocalDate.parse("2023-05-01"))) {
// 输出加15天前的日期
System.out.println(date);
// 将日期加上15天
date = date.plusDays(15);
// 如果加15天后的日期超过了2023-04-30日,则将日期设置为2023-04-30日
if (date.isAfter(LocalDate.parse("2023-04-30"))) {
date = LocalDate.parse("2023-04-30");
}
// 输出加15天后的日期
System.out.println(date);
}
}
}
运行这段代码,将会输出以下结果:
2023-03-01
2023-03-16
2023-03-16
2023-03-31
2023-03-31
2023-04-15
2023-04-15
2023-04-30
----------------------------------------------------------------------------------
但是啊,我觉得像楼上兄弟说的,你这个可能是因为查询过了,所以快。不是因为时间间隔缩短了。
【 在 townhope 的大作中提到: 】
: 如何将一个时间范围按15天或30天拆分为多个时间段?
: 一个PGSQL数据库的一个表 有5000万行数据
: 它有一个时间类型的字段 这个时间字段有索引
: ...................
--
FROM 120.244.234.*