亲爱的所有..我想做一些报告来获取一个学期的数据。这个学期从每年的四月开始,到九月结束。但是对于第二个学期,它将从 10 月到 3 月(明年)获取数据。我该如何做这个分组或聚合?我现在只是基本查询,例如:
select * from dt_tb where `dt` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
亲爱的所有..我想做一些报告来获取一个学期的数据。这个学期从每年的四月开始,到九月结束。但是对于第二个学期,它将从 10 月到 3 月(明年)获取数据。我该如何做这个分组或聚合?我现在只是基本查询,例如:
select * from dt_tb where `dt` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
就像是:
SELECT *
FROM dt_tb
WHERE (dt >= '2010-10-01') AND (dt < '2011-05-01')
(从 10 月 1 日开始到 5 月 1 日(即 4 月 30 日)之前结束的所有数据)。
如果你想要一个滑动窗口,使用 DATE_SUB() 和 CURDATE() 很好,但如果你需要固定的开始和结束时间点,就像一个学期一样,最好使用实际日期。
同样,您的方法会从尚未发生的期货学期中获取任何数据,因为您的 WHERE 子句基本上说“给我数据库中比 6 个月前更新的所有数据”。如果你存储接下来两年的学期,你也会得到这些。通过指定开始/结束日期,您只能获得您真正想要的学期。