对于离线数据的分析, 数据通常是 T+1 的, 即所有数据更新都是到 "昨天". 对于这样的同环比能自动计算是很需要的.

-- 以Mysql为例: 

-- 今天: 2022/3/1
select curdate();

-- 昨天: 2022/2/28
select date_add(curdate(), interval -1 day)

-- 昨天的当月第一天: '2022/3/1'
select date_add(date_add('2022/3/1', interval -1 day), interval -day(date_add('2022/3/1', interval -1 day)) +1 day)

-- 1. 月同比去年时间计算

-- 昨天的去年的当月第一天
select date_add(date_add(date_add('2022/3/1', interval -1 day), interval -day(date_add('2022/3/1', interval -1 day)) +1 day), interval -1 year)

-- 昨天的去年
select date_add(date_add('2022/3/1', interval -1 day), interval -1 year)

-- 2. 环比上月计算

-- 昨天的去年的当月第一天
select date_add(date_add(date_add('2022/3/1', interval -1 day), interval -day(date_add('2022/3/1', interval -1 day)) +1 day), interval -1 month)

-- 昨天的上月
select date_add(date_add('2022/3/1', interval -1 day), interval -1 month)

耐心和恒心, 总会获得回报的.