mysql如何动态创建连续时间段

 更新时间:2024年01月12日 10:11:31   作者:优秀的胡茬  
这篇文章主要介绍了mysql如何动态创建连续时间段问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql动态创建连续时间段

SELECT
	(((
			SELECT
				( curdate() - INTERVAL 30 YEAR )) - INTERVAL 1 YEAR	
			) + INTERVAL ( cast( `mysql`.`help_topic`.`help_topic_id` AS signed ) + 1 ) YEAR 
	) AS `current_week` 
FROM
	`mysql`.`help_topic` 
WHERE
	(
		`mysql`.`help_topic`.`help_topic_id` < 30) 
ORDER BY
	`mysql`.`help_topic`.`help_topic_id`

忘了原sql是从哪里找到的了,给改造了一下,上边的是构造当前时间向前推30年的连续年,需要连续月就把“YEAR”改成“MONTH”即可得到连续月;同理,需要连续天则改成“DAY”。

需要构造连续多少条时间就把30改成对应需要的数字,以此作为基表关联业务表即可统计连续时间段业务情况。

在mapper.xml中写自己的逻辑即可

仅供参考:

<select id="select" resultMap="Vo">
        select d.date,count(t.id) count
    form 
        (SELECT
	        (((
			SELECT
				( curdate() - INTERVAL #{连续时间长度} 
                <if test="判断传入参数">
                    YEAR
                </if>
             )) - INTERVAL 1 
                <if test="判断传入参数">
                    YEAR
                </if>	
			) + INTERVAL ( cast( `mysql`.`help_topic`.`help_topic_id` AS signed ) + 1 ) 
            <if test="判断传入参数">
                YEAR
            </if>
        	) AS `current_week` 
        FROM
	        `mysql`.`help_topic` 
        WHERE
    	(
	    	`mysql`.`help_topic`.`help_topic_id` < #{连续时间长度} ) 
            ORDER BY
	        `mysql`.`help_topic`.`help_topic_id`) d
        left join (
            /** 具体的业务表 */
        )T on T.date = d.date
</select>

如果按非当前时间计算还需要考虑到日期格式转换

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL中ON DUPLICATE KEY UPDATE语句的使用

    MySQL中ON DUPLICATE KEY UPDATE语句的使用

    INSERT INTO ... ON DUPLICATE KEY UPDATE 是一个强大的SQL语句,它结合了插入新记录和更新已存在记录的功能于一体,本文就来介绍一下MySQL中ON DUPLICATE KEY UPDATE语句的使用,感兴趣的可以了解一下
    2024-08-08
  • MySQL笔记之基本查询的应用详解

    MySQL笔记之基本查询的应用详解

    本篇文章介绍了,在mysql中基本查询的应用详解。需要的朋友参考下
    2013-05-05
  • MySQL bit类型增加索引后查询结果不正确案例解析

    MySQL bit类型增加索引后查询结果不正确案例解析

    这篇文章主要介绍了MySQL bit类型增加索引后查询结果不正确案例浅析,我们先创建表student_attend,初始化一些数据,这篇文章的测试环境为MySQL 8.0.35社区版,具体内容介绍跟随小编一起学习吧
    2024-06-06
  • MySQL笔记之子查询使用介绍

    MySQL笔记之子查询使用介绍

    子查询是将一个查询语句嵌套在另一个查询语句中,内层查询语句的查询结果,可以为外层查询语句提供查询条件
    2013-05-05
  • Linux下mysql 8.0.25 安装配置方法图文教程

    Linux下mysql 8.0.25 安装配置方法图文教程

    这篇文章主要为大家详细介绍了Linux下mysql 8.0.25 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • MySQL GROUP BY分组取字段最大值的方法示例

    MySQL GROUP BY分组取字段最大值的方法示例

    本文介绍了如何使用MySQL的GROUPBY语句结合MAX函数来实现分组取字段最大值的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • mysql用户权限管理实例分析

    mysql用户权限管理实例分析

    这篇文章主要介绍了mysql用户权限管理,结合实例形式分析了mysql用户权限管理概念、原理及用户权限的查看、修改、删除等操作技巧,需要的朋友可以参考下
    2020-04-04
  • MySQL无法启动的解决办法

    MySQL无法启动的解决办法

    这篇文章主要介绍了MySQL无法启动的解决办法的相关资料,希望通过本文大家能解决数据库不能启动的问题,需要的朋友可以参考下
    2017-09-09
  • mysql实现外连接方式

    mysql实现外连接方式

    今天小编就为大家分享一篇mysql实现外连接方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • mysql_ssl_rsa_setup的具体使用

    mysql_ssl_rsa_setup的具体使用

    mysql_ssl_rsa_setup 是一个MySQL附带的工具,用于自动创建SSL证书和密钥文件,本文主要介绍了mysql_ssl_rsa_setup的具体使用,感兴趣的可以了解一下
    2024-07-07

最新评论