mysql如何動態(tài)創(chuàng)建連續(xù)時間段
更新時間:2024年01月12日 10:11:31 作者:優(yōu)秀的胡茬
這篇文章主要介紹了mysql如何動態(tài)創(chuàng)建連續(xù)時間段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
mysql動態(tài)創(chuàng)建連續(xù)時間段
SELECT ((( SELECT ( curdate() - INTERVAL 30 YEAR )) - INTERVAL 1 YEAR ) + INTERVAL ( cast( `mysql`.`help_topic`.`help_topic_id` AS signed ) + 1 ) YEAR ) AS `current_week` FROM `mysql`.`help_topic` WHERE ( `mysql`.`help_topic`.`help_topic_id` < 30) ORDER BY `mysql`.`help_topic`.`help_topic_id`
忘了原sql是從哪里找到的了,給改造了一下,上邊的是構(gòu)造當前時間向前推30年的連續(xù)年,需要連續(xù)月就把“YEAR”改成“MONTH”即可得到連續(xù)月;同理,需要連續(xù)天則改成“DAY”。
需要構(gòu)造連續(xù)多少條時間就把30改成對應(yīng)需要的數(shù)字,以此作為基表關(guān)聯(lián)業(yè)務(wù)表即可統(tǒng)計連續(xù)時間段業(yè)務(wù)情況。
在mapper.xml中寫自己的邏輯即可
僅供參考:
<select id="select" resultMap="Vo"> select d.date,count(t.id) count form (SELECT ((( SELECT ( curdate() - INTERVAL #{連續(xù)時間長度} <if test="判斷傳入?yún)?shù)"> YEAR </if> )) - INTERVAL 1 <if test="判斷傳入?yún)?shù)"> YEAR </if> ) + INTERVAL ( cast( `mysql`.`help_topic`.`help_topic_id` AS signed ) + 1 ) <if test="判斷傳入?yún)?shù)"> YEAR </if> ) AS `current_week` FROM `mysql`.`help_topic` WHERE ( `mysql`.`help_topic`.`help_topic_id` < #{連續(xù)時間長度} ) ORDER BY `mysql`.`help_topic`.`help_topic_id`) d left join ( /** 具體的業(yè)務(wù)表 */ )T on T.date = d.date </select>
如果按非當前時間計算還需要考慮到日期格式轉(zhuǎn)換
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中ON DUPLICATE KEY UPDATE語句的使用
INSERT INTO ... ON DUPLICATE KEY UPDATE?是一個強大的SQL語句,它結(jié)合了插入新記錄和更新已存在記錄的功能于一體,本文就來介紹一下MySQL中ON DUPLICATE KEY UPDATE語句的使用,感興趣的可以了解一下2024-08-08MySQL?bit類型增加索引后查詢結(jié)果不正確案例解析
這篇文章主要介紹了MySQL?bit類型增加索引后查詢結(jié)果不正確案例淺析,我們先創(chuàng)建表student_attend,初始化一些數(shù)據(jù),這篇文章的測試環(huán)境為MySQL 8.0.35社區(qū)版,具體內(nèi)容介紹跟隨小編一起學(xué)習吧2024-06-06