mysql 根据起止年月 查询所选年月的数据

Posted 雁书几封

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 根据起止年月 查询所选年月的数据相关的知识,希望对你有一定的参考价值。

1、时间字段是datetime类型

2、需要用到中间表,表结构和数据链接下载

链接:https://pan.baidu.com/s/1tAFU4nm1p4CkSneXwceA_A 
提取码:b3xi 

3、前两个 adddate 日需要在代码中写死 从每日的-01开始,-最后一个日期同理xxxx-xx-31

4、sql

select
    bri.orgid,
    years.date,
    date_format(years.date, \'%Y-%m\') AS years,
    bri.entrytime a,
    sum( case when bri.status = \'1\' then 1 else 0 end ) as num,
    sum( case when bri.status = \'1\' and bri.sex=\'1\' then 1 else 0 end  ) as numman,
    sum( case when bri.status = \'1\' and bri.sex=\'2\' then 1 else 0 end  ) as numgrid
    
from
    ( select adddate(\'2018-10-01\', INTERVAL numlist.id month) as \'date\', 
        numlist.id 
    from ( select n100.i * 1 as id from num as n100 ) as numlist 
    where adddate(\'2018-10-01\', INTERVAL numlist.id month) <= \'2019-05-31\' ) years
    
left join building_resident_info bri on date_format(years.date, \'%Y-%m\')  = date_format(bri.entrytime, \'%Y-%m\') and bri.status=\'1\'

and bri. status = \'1\'
and bri.orgid like concat(\'37.02.82\', \'%\')
group by
    years.date

 

 

5、结果

 

如有疏漏,请指正!谢谢。

以上是关于mysql 根据起止年月 查询所选年月的数据的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 数据库查询一个时间段根据年月日三个字段,注意是三个字段

mysql 按年月查询

java查询数据库按年月日

mysql中如何根据时间段(datatime年月日:时分秒都有)模糊查询,求两个时间短的内容,把秒模糊了。

sql数据表里面取日期的年月日

MySQL获取当前时间年月年月日