统计中经常会遇到,近一周,近一月,近三月,近一年数据统计,下面提供了postgresql拆分日期段的sql
-- 近一周,每一天起止时间
select generate_series startDate,generate_series + interval '1 day' endDate
from generate_series( NOW()::date + interval ' -6 day', now()::timestamp , '1day');-- 近一月 ,每一天起止时间
select generate_series startDate,generate_series + interval '1 day' endDate
from generate_series( NOW()::date + interval ' -1 month', now()::timestamp , '1day');-- 近三个月,每一周起止时间
selectdate_trunc('week', generate_series) startDate,date_trunc('week', generate_series + interval ' 1 week') endDate
from generate_series( NOW()::timestamp + interval ' - 12 week', now()::timestamp , '1week');-- 近一年,每月起止时间
select date_trunc('month', generate_series) startDate,date_trunc('month', generate_series + interval ' 1 month' ) endDate
from generate_series(NOW()::date + interval ' -11 month', now()::timestamp , '1month');
-- 近一周,每一天起止时间 测试时间为2023-10-09
-- 近一月 ,每一天起止时间 测试时间为2023-10-09
-- 近三个月,每一周起止时间,测试时间为2023-10-09
-- 近一年,每月起止时间 测试时间为2023-10-09