mysql如何实现获取本年前一个月往前推一年的时间

该SQL语句使用WITHRECURSIVE创建了一个递归查询,从当前日期减去1个月开始,向前推12个月,生成一个包含过去一年每个月份的列表。DATE_FORMAT和DATE_SUB函数分别用于格式化日期和计算时间差。
摘要由CSDN通过智能技术生成
select t.months from (
with RECURSIVE months(months,num) as (
    SELECT DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m') AS 'months' , 1 as num
    union all
    SELECT DATE_FORMAT((CURDATE() - INTERVAL num+1 MONTH), '%Y-%m') AS 'months', num+1 as num from months where num<12
   )select months,num from months
) t

结果:

去年本月前一月往前推一年的时间

select t.months,t.num from (
with RECURSIVE months(months,num) as (
    SELECT DATE_FORMAT(DATE_SUB(CURDATE() - INTERVAL 1 MONTH,INTERVAL 1 YEAR),'%Y%m') AS 'months' , 1 as num
    union all
    SELECT DATE_FORMAT(DATE_SUB(CURDATE() - INTERVAL 1 MONTH,INTERVAL 1 YEAR)- INTERVAL num MONTH,'%Y%m') AS 'months', num+1 as num from months where num<12
   )select months,num from months
) t

DATE_SUB() 函数从日期减去指定的时间间隔。

语法:DATE_SUB(date,INTERVAL expr type)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值