mysql如何動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段
mysql動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段
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)造當(dāng)前時(shí)間向前推30年的連續(xù)年,需要連續(xù)月就把“YEAR”改成“MONTH”即可得到連續(xù)月;同理,需要連續(xù)天則改成“DAY”。
需要構(gòu)造連續(xù)多少條時(shí)間就把30改成對(duì)應(yīng)需要的數(shù)字,以此作為基表關(guān)聯(lián)業(yè)務(wù)表即可統(tǒng)計(jì)連續(xù)時(shí)間段業(yè)務(wù)情況。
在mapper.xml中寫自己的邏輯即可
僅供參考:
<select id="select" resultMap="Vo">
select d.date,count(t.id) count
form
(SELECT
(((
SELECT
( curdate() - INTERVAL #{連續(xù)時(shí)間長(zhǎng)度}
<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ù)時(shí)間長(zhǎng)度} )
ORDER BY
`mysql`.`help_topic`.`help_topic_id`) d
left join (
/** 具體的業(yè)務(wù)表 */
)T on T.date = d.date
</select>如果按非當(dāng)前時(shí)間計(jì)算還需要考慮到日期格式轉(zhuǎn)換
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- mysql創(chuàng)建時(shí)間字段添加默認(rèn)值方式
- MySQL如何設(shè)置動(dòng)態(tài)創(chuàng)建時(shí)間(create_time)和修改時(shí)間(update_time)
- MySQL8設(shè)置自動(dòng)創(chuàng)建時(shí)間和自動(dòng)更新時(shí)間的實(shí)現(xiàn)方法
- MySQL創(chuàng)建定時(shí)任務(wù)實(shí)例(每天凌晨1點(diǎn)、每小時(shí)、每分鐘、某一時(shí)間點(diǎn))
- MySQL中創(chuàng)建時(shí)間和更新時(shí)間的自動(dòng)更新的實(shí)現(xiàn)示例
- mysql數(shù)據(jù)庫(kù)自動(dòng)添加創(chuàng)建時(shí)間及更新時(shí)間
相關(guān)文章
MySQL 8.0找不到 my.ini 配置文件(并開啟 Binlog 
本文主要介紹了MySQL 8.0找不到 my.ini 配置文件(并開啟 Binlog 監(jiān)聽),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06
SQL?SERVER數(shù)據(jù)庫(kù)服務(wù)器CPU不能全部利用原因解析
這篇文章主要介紹了SQL?SERVER數(shù)據(jù)庫(kù)服務(wù)器CPU不能全部利用原因解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09
Windows server 2008 r2下MySQL5.7.17 winx64安裝版配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows server 2008 r2下MySQL5.7.17 winx64安裝版配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
淺析MySQL動(dòng)態(tài)查詢條件導(dǎo)致索引失效問(wèn)題優(yōu)化
這篇文章將結(jié)合真實(shí)業(yè)務(wù)場(chǎng)景,深入淺出地剖析了 MySQL 動(dòng)態(tài)查詢?nèi)绾螌?dǎo)致索引失效,并提供了 Java 實(shí)戰(zhàn)方案,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-07-07
MySQL定時(shí)刪除XX天數(shù)據(jù)示例代碼
通過(guò)使用MySQL的事件調(diào)度器,我們可以方便地創(chuàng)建定時(shí)任務(wù)來(lái)定期清理數(shù)據(jù)庫(kù)中的過(guò)期數(shù)據(jù),本文介紹了如何創(chuàng)建定時(shí)任務(wù)以及如何刪除3個(gè)月前的數(shù)據(jù)作為示例,感興趣的朋友跟隨小編一起看看吧2023-09-09
解決MySQL5.7安裝后沒有data文件夾無(wú)法登錄的問(wèn)題
這篇文章主要介紹了解決MySQL5.7安裝后沒有data文件夾無(wú)法登錄的問(wèn)題,需要的朋友可以參考下2016-04-04
mysql下為數(shù)據(jù)庫(kù)設(shè)置交叉權(quán)限的方法
由于 SupeSite 需要調(diào)用 Discuz! 和 UCHome 的數(shù)據(jù),所以如果它們不安裝在同一個(gè)數(shù)據(jù)庫(kù),SupeSite 的數(shù)據(jù)庫(kù)用戶必須要對(duì) Discuz! 和 UCHome 的數(shù)據(jù)庫(kù)有讀取、修改、刪除等權(quán)限。2011-07-07

