整理几个常用的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}
    

接口:

/**
     * 根据场馆编号查询本月的客流量
     * @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);
    }

最后的效果如下所示:

目录
相关文章
|
18天前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
138 11
|
4月前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
166 3
|
4月前
|
SQL 监控 关系型数据库
SQL错误代码1303解析与处理方法
在SQL编程和数据库管理中,遇到错误代码是常有的事,其中错误代码1303在不同数据库系统中可能代表不同的含义
|
4月前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
6月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
56 1
|
5月前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
150 0
|
5月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
245 0
|
6月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
160 0
|
6月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
81 0
|
7月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之将RDS切换到PolarDB-X 2.0时,代码层的SQL该如何改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。