mysql 生成連續(xù)日期及變量賦值
1、生產(chǎn)連續(xù)日期
說(shuō)明:主要作用于一些統(tǒng)計(jì)數(shù)據(jù),來(lái)根據(jù)時(shí)間順序進(jìn)行顯示;
假如數(shù)據(jù)庫(kù)數(shù)據(jù)有隔天數(shù)據(jù),偏偏統(tǒng)計(jì)又需要每天的都顯示,即便是0,那就要生成一個(gè)時(shí)間表,來(lái)使用;
查詢數(shù)據(jù)庫(kù)數(shù)據(jù):
SELECT ?? ??? ?DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, ?? ??? ?COUNT(1) AS numb FROM ?? ?qc_task? ?? ?WHERE ?? ?create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and ?? ?department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ))? ?? ?GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )
隔天時(shí)出數(shù)據(jù):

這樣是不是就不好看了,如果非要說(shuō)加個(gè)order by 1 desc 排一下,也可以…
但是就算排出來(lái),時(shí)間也是不連貫的;
生成最近7天的日期:
// 方法笨,但還是有效的 select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from? ?(SELECT @num:=@num+1 as sj from? ? ? ? ? ? ? (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t,? ? ? ? ? ? ?-- (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t1, ?-- 假如嫌棄生成的少,打來(lái)這個(gè)就行 ? ? ? ? ? ? (SELECT @num:=0) y) as timeList
生成的時(shí)間:

生成后使用:
-- 生成后左右鏈接即可,但主表要為時(shí)間表 SELECT f.datetime, t.numb FROM? (SELECT ?? ??? ?DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, ?? ??? ?COUNT(1) AS numb FROM ?? ?qc_task? ?? ?WHERE ?? ?create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and ?? ?department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ))? ?? ?GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )) t right join? (select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from? ?(SELECT @num:=@num+1 as sj from? ? ? ? ? ? ? (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t,? ? ? ? ? ? ? (SELECT @num:=0) y) as timeList) f ?on t.date = f.datetime ; ? ? ? ? ? ??
使用后效果:

我這里是數(shù)據(jù)庫(kù)沒(méi)有數(shù)據(jù)…所以看不到有數(shù)量顯示
2、變量賦值
看到第一個(gè)里面 @符號(hào)很多是嗎,那些都是變量,如果把查詢語(yǔ)句放進(jìn)去,整個(gè)查詢語(yǔ)句就顯得太臃腫了,會(huì)很長(zhǎng)…所以有些東西可以拆分出去;
比如在查詢數(shù)據(jù)庫(kù)語(yǔ)句中的:

來(lái)看下他們的真面目:
# ?查詢部門(mén)區(qū)域編號(hào) SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "歷下區(qū)"); # ?查詢部門(mén)等級(jí) SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "歷下區(qū)");
到此這篇關(guān)于mysql 生成連續(xù)日期及變量賦值的文章就介紹到這了,更多相關(guān)mysql 連續(xù)日期與變量賦值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Hadoop集群環(huán)境中為MySQL安裝配置Sqoop的教程
這篇文章主要介紹了在Hadoop集群環(huán)境中為MySQL安裝配置Sqoop的教程,Sqoop一般被用于數(shù)據(jù)庫(kù)軟件之間的數(shù)據(jù)遷移,需要的朋友可以參考下2015-12-12
SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水)
這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
MySQL的分區(qū)表使用場(chǎng)景及示例小結(jié)
MySQL的分區(qū)表功能在某些場(chǎng)景下可以顯著提高查詢效率,本文主要介紹了MySQL的分區(qū)表使用場(chǎng)景及示例小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
微信昵稱帶符號(hào)導(dǎo)致插入MySQL數(shù)據(jù)庫(kù)時(shí)出錯(cuò)的解決方案
Mysql的utf8編碼最多3個(gè)字節(jié),而Emoji表情或者某些特殊字符是4個(gè)字節(jié),所以會(huì)導(dǎo)致帶有表情的昵稱插入數(shù)據(jù)庫(kù)時(shí)出錯(cuò),下面給大家分享下解決方案,需要的朋友參考下吧2016-12-12
mysql 無(wú)法連接問(wèn)題的定位和修復(fù)過(guò)程分享
開(kāi)發(fā)的一款網(wǎng)站防護(hù)產(chǎn)品中出現(xiàn)了一個(gè)客戶端上安裝后Mysql每隔一段時(shí)間就出現(xiàn)問(wèn)題,這個(gè)問(wèn)題是客戶反饋的,所以需要去復(fù)現(xiàn)和定位2013-03-03
MySQL利用frm文件和ibd文件恢復(fù)表結(jié)構(gòu)和表數(shù)據(jù)
當(dāng)MySQL數(shù)據(jù)庫(kù)遭遇崩潰或數(shù)據(jù)丟失時(shí),利用備份的 .frm 和 .ibd 文件恢復(fù)數(shù)據(jù)是一種有效的解決方案,.frm 文件包含表的結(jié)構(gòu)信息,而 .ibd 文件則存儲(chǔ)表的實(shí)際數(shù)據(jù),本文將提供一個(gè)詳細(xì)的步驟指南,演示如何利用這些文件恢復(fù)MySQL表數(shù)據(jù)和表結(jié)構(gòu),需要的朋友可以參考下2024-05-05

