返回顶部
首页 > 资讯 > 数据库 >使用mysql.help_topic生成序列
  • 135
分享到

使用mysql.help_topic生成序列

dba数据库开发 2023-08-23 09:08:56 135人浏览 独家记忆
摘要

本文来说下如何使用Mysql.help_topic生成序列 文章目录 问题由来使用实例 问题由来 有时我们在生成一些时间轴类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_

本文来说下如何使用Mysql.help_topic生成序列


问题由来

有时我们在生成一些时间轴类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_topic来解决此类问题,通过序列和日期函数相结合来满足我们的业务需求。

在这里插入图片描述
help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数,但是8.0.17版本的只有686条数据,超过这个数字,我们就需要己自定义一张表。

可以用做计数的临时表,查询的语句只会用help_topic计数,超出的部分其实都是脏数据。


使用实例

使用实例

SELECTDATE( DATE_ADD( '2022-05-01', INTERVAL @s DAY ) ) AS date,'异常总条数' as e_name, @s := @s + 1 AS `index`FROMmysql.help_topic,( SELECT @s := 0 ) temp WHERE@s <= DATEDIFF('2022-05-31','2022-05-01')

实例结果

在这里插入图片描述


本周,本月,本季度,本年的第一天和最后一天

#查询本周第一天SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) AS TIME#查询本周的最后一天SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE())-6 DAY) AS TIME#查询本月的第一天SELECT DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) AS TIME#查询本月的最后一天SELECT LAST_DAY(CURDATE()) AS TIME#当前quarter的第一天:  select concat(date_fORMat(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM  CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01');  #当前quarter的最后一天:  select LAST_DAY(MAKEDATE(EXTRACT(YEAR  FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month);#当年第一天:SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY); #当年最后一天:SELECT concat(YEAR(now()),'-12-31'); 

新增一个星期,一个月,一个季度,一年

#新增一个星期SELECT DATE_ADD(now(), INTERVAL 1 week) time#新增一个月SELECT DATE_ADD(now(), INTERVAL 1 month) time#新增一个季度SELECT DATE_ADD(now(), INTERVAL 1 quarter) time#新增一年SELECT DATE_ADD(now(), INTERVAL 1 year) time

查询本日,本周,本月,本年的数据

#查询本日的数据SELECT T.* FROM buz_sampling_data TWHERE TO_DAYS(TIME) = TO_DAYS(NOW())#查询本周的数据SELECT T.* FROM buz_sampling_data TWHERE YEARWEEK(TIME,1) = YEARWEEK(NOW(),1)#查询本月的数据SELECT T.* FROM buz_sampling_data TWHERE MONTH(TIME) = MONTH(NOW())#查询本年的数据SELECT T.* FROM buz_sampling_data TWHERE YEAR(TIME) = YEAR(NOW())

来源地址:https://blog.csdn.net/qq_31960623/article/details/124803535

您可能感兴趣的文档:

--结束END--

本文标题: 使用mysql.help_topic生成序列

本文链接: https://www.lsjlt.com/news/378446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作