统计月份数据以及统计年份数据时如何将月份或者年转换成具体日,在不能手动补0的情况下,顺其自然地另辟蹊径了!
计算店铺月售额和年售额的时候,统计每个月和每一年的数据总是出现莫名其妙的问题。
DATE_FORMAT(date,’%Y-%m-%d’)函数真的是个神坑,就是个事儿精,而且功能很不强。形参date必须是date形式的,也就是说必须精确到日。但凡是月份或者年份就都不行了,转换贼菜!
那我怎么统计一年的?难道要统计365天?就不能统计12个月的?
所以我一开始想到个骚操作,就是把date(比如month和year)取出来然后补0补到天,然后再进行格式化,美滋滋。
直到,直到我字段名是month的月份我想从里面取出来,但是我month和shop是一对唯一索引,也就是说除了month和shop成对唯一之外,再无唯一数据,这样就没法取出来手动补0。这时候只能借助函数,但是!!!没有一个函数接受月份转换,查遍了mysql中date的方法都无果!
然后!!!!!!!看到旁边的商店模糊搜索!!!!!灵光乍现,日期也是字符串,如何不能模糊包含,直接解决!牛批!!给自己鼓掌!特此分享!!
// 获取Sql查询语句 !!!!!!一定要注意时间不是time,是month 取year有专门的函数
// String date1 = date + "-00-00";//就这一句话花了我一下午
// String Sql1 ="SELECT SUM(wx) as wx, SUM(zfb) as zfb, SUM(cash) as cash, SUM(total) as sum from t_shopmonth"
// + " where Year(month)=DATE_FORMAT('"+date1+"','%Y')"
// + " AND shop like '%"+shop+"%';";
String Sql1 ="SELECT SUM(wx) as wx, SUM(zfb) as zfb, SUM(cash) as cash, SUM(total) as sum from t_shopmonth"
+ " where month like '%"+date+"%' AND shop like '%"+shop+"%';";
System.out.println(Sql1);
探索过程如下图为证:神坑!!!!