您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysql如何生成連續日期及變量賦值,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
說明:主要作用于一些統計數據,來根據時間順序進行顯示;
假如數據庫數據有隔天數據,偏偏統計又需要每天的都顯示,即便是0,那就要生成一個時間表,來使用;
查詢數據庫數據:
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' )
隔天時出數據:
這樣是不是就不好看了,如果非要說加個order by 1 desc 排一下,也可以…
但是就算排出來,時間也是不連貫的;
生成最近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, -- 假如嫌棄生成的少,打來這個就行 (SELECT @num:=0) y) as timeList
生成的時間:
生成后使用:
-- 生成后左右鏈接即可,但主表要為時間表 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 ;
使用后效果:
我這里是數據庫沒有數據…所以看不到有數量顯示
看到第一個里面 @符號很多是嗎,那些都是變量,如果把查詢語句放進去,整個查詢語句就顯得太臃腫了,會很長…所以有些東西可以拆分出去;
比如在查詢數據庫語句中的:
來看下他們的真面目:
# 查詢部門區域編號 SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "歷下區"); # 查詢部門等級 SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "歷下區");
感謝你能夠認真閱讀完這篇文章,希望小編分享的“mysql如何生成連續日期及變量賦值”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。