SQL:查询近一年每个月的数据

前期思路:使用now()函数
存在的问题:now函数会精确到时间,后续再使用date_sub()函数会精确到离现在时间1年前的同一时间之后的数据,存在精度问题,本月这一天这一时间段之前的数据无法计算在内

解决方案:使用curdate()函数精确到天,再将create_time字段使用date_format()转化为年月,使用date_sub()函数把范围规定在11个月之前,并再使用date_format将curdate()转化为年月,问题得以解决
   date_format(create_time,'%Y%m') between date_format(DATE_SUB(CURDATE(), INTERVAL 11 month),'%Y%m') and date_format(curdate(),'%Y%m')

你可能感兴趣的:(sql,mysql)