mysql 日曆表 mysql建立日曆表

2021-10-25 14:41:17 字數 1053 閱讀 7136

最近開發遇到乙個需求,需要統計一段時間內每天的各種資料,發現某天沒有的資料沒法顯示出來,所以這時候用一張日曆表去聯合查詢即能獲得每天的資料

建立日曆表用到adddate這個系統函式,這個函式會自動為給定的日期新增指定的時間間隔,

adddate('2017-06-20',1) 會得出2017-06-21,利用這個功能,給指定的日期迴圈新增比如10000,即能得到指定日期後10000天的資料

create table num (i int);-- 建立乙個表用來儲存0-9的數字

insert into num (i) values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的數字,方便以後計算時間

insert into calendar(datelist) select

-- 利用下面計算出0-100000的數字依次新增指定時間間隔,即得2017-06-21後100000天的日曆表

adddate(

( -- 這裡的起始日期,你可以換成當前日期

date_format("2017-06-21", '%y-%m-%d')

numlist.id

) as `date`

from

-- 這邊利用笛卡爾積計算出 0 - 100000 依次各個資料

select

n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000+ n10000.i * 10000 as id

from

num n1

cross join num as n10

cross join num as n100

cross join num as n1000

cross join num as n10000

) as numlist;

參考鏈結

順便統計每天日期的寫法

select count(id) as cid, date_format(create_time, '%y-%m-%d') as t from table group by t

SQL server自動建立日曆表。

做 功能需要統計每個月的上班天數,節假日因為每年的日期都不一樣,所以需要自己手動更新這些節假日 1 首先先自動建立乙個日曆表,選擇開始年月日和結束的年月日 不要同時執行,先執行建立表之後 create table dbo time dimension time id int identity 1,1...

MySQL 8 0 11 生成日曆表

mysql的date 資料類支援的時間範圍是 1000 1 1 到9999 12 31,通過計算可以知道最大支援天數為3287181天屬於百萬級別的。mysql select datediff 9999 12 31 1000 01 01 days days 3287181 1 row in set ...

小程式日曆表

頁面 取消確定 年 月 js component 元件的初始資料 data lifetimes detached function 元件的方法列表 methods 確認選擇 sure function e 展示彈框 show function e 滑動更改 bindchange function e...