公众号文章
大家好,我是雄雄,歡迎關注微信公眾號:雄雄的小課堂。
常用的幾個sql整理
1.按照日期統計今天的客流信息。
SELECT * FROM base_disanfang WHERE DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')其中base_disanfang為表名,create_time日期的字段名。
還有另外一種寫法,查詢速度比較快點兒。
SELECT * FROM base_disanfang WHERE DATE(create_time) = CURDATE()2.按照日期統計本月的客流信息。
SELECT * FROM buss_flow_listWHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')其中buss_flow_list為表名,TIME日期的字段名。
3.按照日期統計今年的客流信息。
SELECT * FROM base_month_flowWHERE DATE_FORMAT(TIME,'%Y') = DATE_FORMAT(NOW(),'%Y')其中base_month_flow為表名,TIME日期的字段名。
4.上月低免地區的客流量
SELECT * FROM base_month_flowWHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')AND state_id = 1;其中base_month_flow為表名,TIME日期的字段名,state_id區分是否為抵免地區。
這幾個sql都是對日期進行處理比較常用的,sql寫好了就無需在代碼中做過多的操作。
其他注意事項
1.如果數據返回的是Long類型,則在mybatis的配置文件中需要注意resultType的類型為java.lang.Long,如下:
xml文件:
<!--根據場館編號查詢當月的客流信息--><select id="getMonthsKeLiu" resultType="java.lang.Long">SELECT SUM(in_count) FROM buss_flow_listWHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')AND dept_id = #{deptId}AND state_id = #{stateId}</select>接口:
/*** 根據場館編號查詢本月的客流量* @param deptId 場館編號* @param stateId 是否為抵免地區,0:全部 1:低免地區* @return*/public Long getMonthsKeLiu(@Param("deptId") Long deptId,@Param("stateId") Integer stateId);2.如果查詢的返回數據未null或者空的時候,則需要判斷,代碼如下:
/*** 根據場館編號獲取場館信息* @param deptId* @return*/@GetMapping(value = "/getDeptDetails/{deptId}")public AjaxResult getDeptDetails(@PathVariable(value = "deptId", required = false) Long deptId){SysDeptVo deptVo = new SysDeptVo();//獲取本日的客流量 null就是0,否則就是查出來的值Long days_all = baseDisanfangService.getDaysKeLiu(deptId)==null? 0:baseDisanfangService.getDaysKeLiu(deptId);//獲取本月的客流(全部)Long months_all = bussFlowListService.getMonthsKeLiu(deptId,0)==null?0:bussFlowListService.getMonthsKeLiu(deptId,0);//獲取本年的總客流(全部)--今年所有月+本月的Long years_all =(baseMonthFlowService.getYearsKeLiu(deptId,0)==null?0:baseMonthFlowService.getYearsKeLiu(deptId,0))+months_all;//獲取總客流(全部的)--所有月的加上本月的Long total_all = (baseMonthFlowService.getTotalKeLiu(deptId,0)==null?0:baseMonthFlowService.getTotalKeLiu(deptId,0))+months_all;//獲取上月低免客流Long top_month_dimian = baseMonthFlowService.getTopMonthDiMianKeLiu(deptId,1)==null?0:baseMonthFlowService.getTopMonthDiMianKeLiu(deptId,1);//獲取本月的低免客流Long month_dimian = bussFlowListService.getMonthsKeLiu(deptId,1)==null?0:bussFlowListService.getMonthsKeLiu(deptId,1);//獲取本年的低免客流---所有月的加上本月的Long year_dimian =(baseMonthFlowService.getYearsKeLiu(deptId,0)==null?0:baseMonthFlowService.getYearsKeLiu(deptId,0))+month_dimian;//獲取低免的總客流---所有月的加上本月的Long total_dimian = (baseMonthFlowService.getTotalKeLiu(deptId,1)==null?0:baseMonthFlowService.getTotalKeLiu(deptId,1))+month_dimian;//都放在VO里面//獲取場館對象deptVo.setSysDept(deptService.selectDeptById(deptId));deptVo.setDaysKeLiu(days_all);deptVo.setMonthKeLiu(months_all);deptVo.setYearKeLiu(years_all);deptVo.setTotalKeLiu(total_all);deptVo.setTopMonthDiMianKeLiu(top_month_dimian);deptVo.setYearDiMianKeLiu(year_dimian);deptVo.setTotalDiMianKeLiu(total_dimian);return AjaxResult.success(deptVo);}最后的效果如下所示:
總結
- 上一篇: android 简单实现圆角,Andro
- 下一篇: html-盒子模型及pading和mar