mysql 生成連續(xù)日期及變量賦值
1、生產(chǎn)連續(xù)日期
說明:主要作用于一些統(tǒng)計(jì)數(shù)據(jù),來根據(jù)時(shí)間順序進(jìn)行顯示;
假如數(shù)據(jù)庫數(shù)據(jù)有隔天數(shù)據(jù),偏偏統(tǒng)計(jì)又需要每天的都顯示,即便是0,那就要生成一個(gè)時(shí)間表,來使用;
查詢數(shù)據(jù)庫數(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ù):
這樣是不是就不好看了,如果非要說加個(gè)order by 1 desc 排一下,也可以…
但是就算排出來,時(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, ?-- 假如嫌棄生成的少,打來這個(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ù)庫沒有數(shù)據(jù)…所以看不到有數(shù)量顯示
2、變量賦值
看到第一個(gè)里面 @符號很多是嗎,那些都是變量,如果把查詢語句放進(jìn)去,整個(gè)查詢語句就顯得太臃腫了,會很長…所以有些東西可以拆分出去;
比如在查詢數(shù)據(jù)庫語句中的:
來看下他們的真面目:
# ?查詢部門區(qū)域編號 SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "歷下區(qū)"); # ?查詢部門等級 SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "歷下區(qū)");
到此這篇關(guān)于mysql 生成連續(xù)日期及變量賦值的文章就介紹到這了,更多相關(guān)mysql 連續(xù)日期與變量賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!