亲爱的所有..我想做一些报告,获得一个学期的数据。 这个学期从四月开始,每年九月结束。 但是对于第二学期,它将从10月到3月(明年)获得数据。 如何进行此分组或聚合?我现在只是基本的查询:
select * from dt_tb where `dt` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
答案 0 :(得分:0)
类似的东西:
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个月前更新的一切”。如果您存储下两年的学期,您也可以获得这些学期。通过指定开始/结束日期,您只能获得实际需要的学期。