整理几个常用的sql和其他代码
生活随笔
收集整理的這篇文章主要介紹了
整理几个常用的sql和其他代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
“
大家好,我是雄雄,歡迎關(guān)注微信公眾號:雄雄的小課堂。
”常用的幾個(gè)sql整理
1.按照日期統(tǒng)計(jì)今天的客流信息。
SELECT?*?FROM?base_disanfang? WHERE?DATE_FORMAT(create_time,'%Y-%m-%d')?=?DATE_FORMAT(NOW(),'%Y-%m-%d')其中base_disanfang為表名,create_time日期的字段名。
還有另外一種寫法,查詢速度比較快點(diǎn)兒。
SELECT?*?FROM?base_disanfang?WHERE?DATE(create_time)?=?CURDATE()2.按照日期統(tǒng)計(jì)本月的客流信息。
SELECT?*?FROM?buss_flow_listWHERE?DATE_FORMAT(TIME,'%Y-%m')?=?DATE_FORMAT(NOW(),'%Y-%m')其中buss_flow_list為表名,TIME日期的字段名。
3.按照日期統(tǒng)計(jì)今年的客流信息。
SELECT?*?FROM?base_month_flowWHERE?DATE_FORMAT(TIME,'%Y')?=?DATE_FORMAT(NOW(),'%Y')其中base_month_flow為表名,TIME日期的字段名。
4.上月低免地區(qū)的客流量
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區(qū)分是否為抵免地區(qū)。
這幾個(gè)sql都是對日期進(jìn)行處理比較常用的,sql寫好了就無需在代碼中做過多的操作。
其他注意事項(xiàng)
1.如果數(shù)據(jù)返回的是Long類型,則在mybatis的配置文件中需要注意resultType的類型為java.lang.Long,如下:
xml文件:
<!--根據(jù)場館編號查詢當(dāng)月的客流信息--><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>接口:
/***?根據(jù)場館編號查詢本月的客流量*?@param?deptId??場館編號*?@param?stateId ?是否為抵免地區(qū),0:全部? 1:低免地區(qū)*?@return*/public?Long?getMonthsKeLiu(@Param("deptId")?Long?deptId,@Param("stateId")?Integer?stateId);2.如果查詢的返回?cái)?shù)據(jù)未null或者空的時(shí)候,則需要判斷,代碼如下:
/***?根據(jù)場館編號獲取場館信息*?@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);}最后的效果如下所示:
image-20211031193633028總結(jié)
以上是生活随笔為你收集整理的整理几个常用的sql和其他代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件是revit,请问配什么笔记本电脑好
- 下一篇: 被黑客盯上了…数据都给打包带走了…