常用的几个sql整理

简介: 常用的几个sql整理

常用的几个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_list
    WHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')

其中buss_flow_list为表名,TIME日期的字段名。

3.按照日期统计今年的客流信息。

SELECT * FROM base_month_flow
    WHERE DATE_FORMAT(TIME,'%Y') = DATE_FORMAT(NOW(),'%Y')

其中base_month_flow为表名,TIME日期的字段名。

4.上月低免地区的客流量

SELECT * FROM base_month_flow
    WHERE 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_list
        WHERE 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);
    }

最后的效果如下所示:

image-20211031193633028

目录
相关文章
|
Java 数据库连接 Maven
Spring与Mybatis整合&&aop整合pageHelper分页插件1
Spring与Mybatis整合&&aop整合pageHelper分页插件1
297 0
|
数据安全/隐私保护
[羊城杯 2020]easyre 1题解
buuctf-[羊城杯 2020]easyre 1题解
570 0
[羊城杯 2020]easyre 1题解
|
开发框架 前端开发 .NET
分享68个ASP.NET源码总有一个是你想要的
分享68个ASP.NET源码总有一个是你想要的
1489 1
|
SQL 关系型数据库 MySQL
一次性导入千万级数据到Mysql(附源码)
MySql数据迁移、导入,在我们日常开发中,可以说是经常碰到。如果数据量比较小,一般都没什么问题,但是如果是涉及到千万级、亿级的数据量大数据量迁移,这里面就涉及到一个问题:如何快速导入千万数据到MySQL。 下面我们通过对比3种方法,来谈谈MySQL怎么高性能插入千万级的数据。
2597 0
|
10月前
|
机器学习/深度学习 人工智能 算法
具身智能与大模型融合创新技术实训研讨会成功举办
2025年1月16日-19日武汉,TsingtaoAI联合北京博创鑫鑫教育科技,举行“具身智能与大模型融合创新技术”实训研讨会,本次会议面向高校AI教师和企业AI工程师群体,通过3天的技术研修和实操教学,通过将 AI 大模型与具备3D视觉的机器人相结合,为学员实践演示,带领学员深入理解通用具身智能的原理和应用。
346 53
|
8月前
|
存储 前端开发 JavaScript
35.2K star!双链笔记+知识图谱+本地优先,这款开源知识管理神器绝了!
嗨,大家好,我是小华同学。Logseq是一款融合「双链笔记+知识图谱+本地优先」理念的开源知识管理工具,支持Markdown/Org-mode格式,助力打造你的第二大脑。它采用Clojure语言开发,注重隐私,数据完全存储在用户本地设备,提供双向链接、块级引用、PDF标注等功能,适用于程序员、学者和个人目标管理等多种场景
633 1
|
云安全 监控 安全
带你读《阿里云安全白皮书》(二十三)——云上安全建设最佳实践
淘宝作为全球最大规模、峰值性能要求最高的电商交易平台,基于阿里云成功通过了多年“双11”峰值考验。淘宝的安全体系涵盖了系统安全、网络安全、账号与凭据安全、云资源安全等多个方面,通过阿里云提供的多种安全产品和服务,确保了业务的稳定运行和数据的安全。淘宝的安全实践不仅为自身业务提供了坚实的保障,也为其他行业的云上安全建设提供了宝贵的经验和参考。
|
Linux Shell 网络安全
Linux 用户管理命令
本文详细介绍了Linux系统中的各类常用命令,包括用户管理(如`adduser`, `usermod`, `passwd`等)、系统操作(如关机、重启、注销)、磁盘管理(如`df`, `mkfs`, `mount`)及网络管理(如`ifconfig`, `ping`, `ssh`)等。通过具体示例展示了每个命令的基本用法和应用场景,帮助用户更好地理解和掌握Linux系统的管理和操作技巧。
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
机器学习/深度学习 人工智能 供应链
构建未来:AI技术在智能物流中的应用
【5月更文挑战第38天】 随着人工智能技术的飞速发展,其在各行各业的应用已经变得日益广泛。特别是在智能物流领域,AI不仅改变了传统物流的运作模式,还极大提升了效率和准确性。本文将深入探讨AI在智能物流中的具体应用,包括库存管理、运输优化、自动化仓库以及客户服务等方面,并分析其对整个行业的深远影响。通过案例分析和数据支撑,我们展示了AI如何帮助物流公司降低成本、提高客户满意度,并推动整个供应链系统的创新。