sql查询选择mysql数据库中的具体月份

ijxebb2r  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(347)

我有一个数据库,里面有日期字段2020-08-03
我正在努力得到每个月的数据

SELECT COUNT(*) FROM new_caseWHERE sla_client = 'ITA' AND MONTH(sysdate) = MONTH(current_date ()) 
AND YEAR(sysdate) = YEAR(current_date())

以上内容适用于当前月份和年份,我将使用什么在上面查询2020年1月、2020年2月等等

6psbrbz9

6psbrbz91#

我认为你想要:

select
    date_format(mydate, '%Y-%m') yyyy_mm,
    count(*) cnt
from new_case
where sla_client = 'ITA'
group by date_format(mydate, '%Y-%m')
order by yyyy_mm

这将为您每月提供一行,其中包含该月的行数(如果给定月份没有数据,则它不会出现在结果集中)。
如果您需要在给定的日期范围内进行筛选,那么我建议使用 where 直接对日期值进行筛选而不是应用日期函数的子句。假设您想要过去3个月和当前月份,然后:

select
    date_format(mydate, '%Y-%m') yyyy_mm,
    count(*) cnt
from new_case
where 
    sla_client = 'ITA'
    and mydate >= date_format(current_date, '%Y-%m-01') - interval 3 month
    and mydate < date_format(current_date, '%Y-%m-01') + interval 1 month
group by date_format(mydate, '%Y-%m')
order by yyyy_mm

相关问题