java获取一个月、一年每一天的数据 mysql和oacle

92 阅读1分钟

最近突然领导让我做一个获取一个月每一天的数据量 效果是这样的

1661824410896.jpg

第一 在控制层生成当前月份

/**
 * 获取当前月 即年/月 如2018/08/
 */
public static final String currentMonth()
{
    Date now = new Date();
    return DateFormatUtils.format(now, "yyyy/MM");
}

第二 传入到service一直到xml

select date_format(from_unixtime(createTime/1000), '%Y-%m-%d') day, count(*) as daycount from 表名 group by day;

createTime是时间戳 1630744304220

select date_format((msgSendTime), '%Y-%m-%d') day, count(*) as daycount from 表名 group by day;

msgSendTime是时间格式2021-09-03 11:17:37

我用这个发现没有排序 我最终修改的如下

select date_format((F_CreatorTime), '%Y-%m-%d') day, count(*) as daycount from 表名 WHERE F_CreatorTime like "2018-07%" group by day ORDER BY day desc;

F_CreatorTime 是时间格式2021-09-03 11:17:37 这个时间格式根据数据库里面日期来改

第三 如果查询的是一年中每一天的数据量

/**
 * 获取当前月 即年/月 如2018/08/
 */
public static final String currentMonth()
{
    Date now = new Date();
    return DateFormatUtils.format(now, "yyyy");
}

sql语句如下 select date_format((F_CreatorTime), '%Y-%m-%d') day, count(*) as daycount from 表名 WHERE F_CreatorTime like "2018%" group by day ORDER BY day desc;

效果如下:

1661825261299.jpg

oacle是sql

select TO_CHAR(VIMA_CT_TM,'YYYY/MM/DD') as day,count(*) as count from vae_vima_tb where TO_CHAR(VIMA_CT_TM,'YYYY/MM') = #{month} group by to_char(VIMA_CT_TM,'YYYY/MM/DD') order by to_char(VIMA_CT_TM,'YYYY/MM/DD')

这就是我的成果 欢迎讨论