首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL创建日期序列

MySQL创建日期序列

作者头像
保持热爱奔赴山海
发布于 2022-05-09 14:44:23
发布于 2022-05-09 14:44:23
5.8K0
举报
文章被收录于专栏:数据库相关数据库相关

场景: grafana看板,需要有个下拉菜单,选择相关的日期,自动计算出对应日期的统计数据。

之前用的方法是 select distinct 时间的方式(如下图),这种的不足之处是如果数据量很大,distinct的耗时会变长,有点浪费数据库的性能。

最近在网上看到了直接sql生成日期序列的方法,sql如下:

代码语言:javascript
复制
select DATE_FORMAT(NOW(),'%Y-%m-%d') 
UNION ALL 
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 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 UNION SELECT 13 UNION SELECT 14) t1,
 (SELECT @num:=0) y) as timeList ;

对应的grafana看板里面的variables就改成如下:

效果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档