SQL 月同环比 日期 T+1 自动计算

对于离线数据的分析, 数据通常是 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)
posted @ 2022-03-12 09:27  致于数据科学家的小陈  阅读(575)  评论(0编辑  收藏  举报