mysql.help_topic生成序列的方法實(shí)現(xiàn)
本文來(lái)說(shuō)下如何使用mysql.help_topic生成序列
問(wèn)題由來(lái)
有時(shí)我們?cè)谏梢恍r(shí)間軸類似的數(shù)據(jù)時(shí),要求數(shù)據(jù)庫(kù)不管有沒(méi)有指定天的數(shù)據(jù),都要生成該時(shí)間節(jié)點(diǎn),可用mysql.help_topic來(lái)解決此類問(wèn)題,通過(guò)序列和日期函數(shù)相結(jié)合來(lái)滿足我們的業(yè)務(wù)需求。
help_topic本身是Mysql一個(gè)幫助解釋注釋表,用于解釋Mysql各種專有名詞,由于這張表數(shù)據(jù)ID是從0順序增加的,方便我們用于計(jì)數(shù),但是8.0.17版本的只有686條數(shù)據(jù),超過(guò)這個(gè)數(shù)字,我們就需要己自定義一張表。
可以用做計(jì)數(shù)的臨時(shí)表,查詢的語(yǔ)句只會(huì)用help_topic計(jì)數(shù),超出的部分其實(shí)都是臟數(shù)據(jù)。
使用實(shí)例
SELECT DATE( DATE_ADD( '2022-05-01', INTERVAL @s DAY ) ) AS date, '異常總條數(shù)' as e_name, @s := @s + 1 AS `index` FROM mysql.help_topic, ( SELECT @s := 0 ) temp WHERE @s <= DATEDIFF('2022-05-31','2022-05-01')
實(shí)例結(jié)果
本周,本月,本季度,本年的第一天和最后一天
#查詢本周第一天 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 #當(dāng)前quarter的第一天: select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01'); #當(dāng)前quarter的最后一天: select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month); #當(dāng)年第一天: SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY); #當(dāng)年最后一天: SELECT concat(YEAR(now()),'-12-31');
新增一個(gè)星期,一個(gè)月,一個(gè)季度,一年
#新增一個(gè)星期 SELECT DATE_ADD(now(), INTERVAL 1 week) time #新增一個(gè)月 SELECT DATE_ADD(now(), INTERVAL 1 month) time #新增一個(gè)季度 SELECT DATE_ADD(now(), INTERVAL 1 quarter) time #新增一年 SELECT DATE_ADD(now(), INTERVAL 1 year) time
查詢本日,本周,本月,本年的數(shù)據(jù)
#查詢本日的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE TO_DAYS(TIME) = TO_DAYS(NOW()) #查詢本周的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE YEARWEEK(TIME,1) = YEARWEEK(NOW(),1) #查詢本月的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE MONTH(TIME) = MONTH(NOW()) #查詢本年的數(shù)據(jù) SELECT T.* FROM buz_sampling_data T WHERE YEAR(TIME) = YEAR(NOW())
到此這篇關(guān)于mysql.help_topic生成序列的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mysql.help_topic生成序列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql創(chuàng)建表的sql語(yǔ)句詳細(xì)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于mysql創(chuàng)建表的sql語(yǔ)句的相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。2020-02-02MySQL建立唯一索引實(shí)現(xiàn)插入重復(fù)自動(dòng)更新
這篇文章給大家分享的是當(dāng)向數(shù)據(jù)插入數(shù)據(jù)時(shí),判斷字段是不是存在,存在執(zhí)行更新操作,如果不存在就執(zhí)行插入操作的方法,有需要的朋友們可以參考借鑒。2016-09-09如何查本地mysql的username和密碼及更新密碼幾種方式
這篇文章主要介紹了光宇如何查找本地MySQL數(shù)據(jù)庫(kù)的用戶名和密碼,包括查看當(dāng)前用戶、列出所有用戶、重置密碼以及檢查配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11詳解MySQL中timestamp和datetime時(shí)區(qū)問(wèn)題導(dǎo)致做DTS遇到的坑
datetime和timestamp這兩種類型都是用于表示年月日時(shí)分秒格式的數(shù)據(jù),那么他們有那么區(qū)別,本文就詳細(xì)的介紹一下MySQL timestamp和datetime坑,文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2021-12-12MariaDB(MySQL)創(chuàng)建、刪除、選擇及數(shù)據(jù)類型使用詳解
這篇文章主要介紹了MariaDB(MySQL)創(chuàng)建、刪除、選擇及數(shù)據(jù)類型使用詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09MySQL系列多表連接查詢92及99語(yǔ)法示例詳解教程
這篇文章主要為大家介紹了MySQL系列多表連接查詢92及99語(yǔ)法示例詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-10-10