范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

如何让MYSQL生成指定时间段的日期

  今天在头条看到作者"一缕82年的清风"发的一文章,文章标题是"MySQL统计近30天的数据,无数据的填充0"。虽然这个问题一般为了减少数据库的计算压力都会在业务代码上来处理。而不会让数据库来实现。但自己瞬间对这个问题感兴趣想研究看下还有没有别的解决办法来自动填充日期。
  根据作者写的自动填充日期的SQL语句执行结果。分析思考还真想出两个解决办法供大家参考。
  1、作者的SQL语句SELECT  	@s := @s + 1 AS indexs, DATE_FORMAT(DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)), "%Y-%m-%d") AS dates  FROM  	mysql.help_topic,  	(SELECT @s := -1) temp  WHERE  	@s < 30  ORDER BY dates  LIMIT 30;  执行结果: +--------+------------+ | indexs | dates      | +--------+------------+ |     30 | 2022-02-28 | |     29 | 2022-03-01 | |     28 | 2022-03-02 | |     27 | 2022-03-03 | |     26 | 2022-03-04 | |     25 | 2022-03-05 | |     24 | 2022-03-06 | |     23 | 2022-03-07 | |     22 | 2022-03-08 | |     21 | 2022-03-09 | |     20 | 2022-03-10 | |     19 | 2022-03-11 | |     18 | 2022-03-12 | |     17 | 2022-03-13 | |     16 | 2022-03-14 | |     15 | 2022-03-15 | |     14 | 2022-03-16 | |     13 | 2022-03-17 | |     12 | 2022-03-18 | |     11 | 2022-03-19 | |     10 | 2022-03-20 | |      9 | 2022-03-21 | |      8 | 2022-03-22 | |      7 | 2022-03-23 | |      6 | 2022-03-24 | |      5 | 2022-03-25 | |      4 | 2022-03-26 | |      3 | 2022-03-27 | |      2 | 2022-03-28 | |      1 | 2022-03-29 | +--------+------------+ 30 rows in set (0.00 sec)
  2、新的解决办法1SELECT  	DATE(NOW()) + INTERVAL -t1.help_topic_id DAY  FROM  	mysql.help_topic t1  WHERE  	t1.help_topic_id > 0  ORDER BY help_topic_id ASC  LIMIT 30;  执行结果: +----------------------------------------------+ | DATE(NOW()) + INTERVAL -t1.help_topic_id DAY | +----------------------------------------------+ | 2022-03-29                                   | | 2022-03-28                                   | | 2022-03-27                                   | | 2022-03-26                                   | | 2022-03-25                                   | | 2022-03-24                                   | | 2022-03-23                                   | | 2022-03-22                                   | | 2022-03-21                                   | | 2022-03-20                                   | | 2022-03-19                                   | | 2022-03-18                                   | | 2022-03-17                                   | | 2022-03-16                                   | | 2022-03-15                                   | | 2022-03-14                                   | | 2022-03-13                                   | | 2022-03-12                                   | | 2022-03-11                                   | | 2022-03-10                                   | | 2022-03-09                                   | | 2022-03-08                                   | | 2022-03-07                                   | | 2022-03-06                                   | | 2022-03-05                                   | | 2022-03-04                                   | | 2022-03-03                                   | | 2022-03-02                                   | | 2022-03-01                                   | | 2022-02-28                                   | +----------------------------------------------+ 30 rows in set (0.00 sec)
  3、新的解决办法2SELECT  	DATE(NOW()) + INTERVAL -(t1.value + t2.value + t4.value + t8.value + t16.value) DAY AS dates  FROM  	(SELECT 0 AS value UNION ALL SELECT 1 value) t1  	CROSS JOIN (SELECT 0 AS value UNION ALL SELECT 2 value) t2  	CROSS JOIN (SELECT 0 AS value UNION ALL SELECT 4 value) t4  	CROSS JOIN (SELECT 0 AS value UNION ALL SELECT 8 value) t8  	CROSS JOIN (SELECT 0 AS value UNION ALL SELECT 16 value) t16  WHERE  	t1.value + t2.value + t4.value + t8.value + t16.value > 0;  执行结果: +------------+ | dates      | +------------+ | 2022-03-29 | | 2022-03-28 | | 2022-03-27 | | 2022-03-26 | | 2022-03-25 | | 2022-03-24 | | 2022-03-23 | | 2022-03-22 | | 2022-03-21 | | 2022-03-20 | | 2022-03-19 | | 2022-03-18 | | 2022-03-17 | | 2022-03-16 | | 2022-03-15 | | 2022-03-14 | | 2022-03-13 | | 2022-03-12 | | 2022-03-11 | | 2022-03-10 | | 2022-03-09 | | 2022-03-08 | | 2022-03-07 | | 2022-03-06 | | 2022-03-05 | | 2022-03-04 | | 2022-03-03 | | 2022-03-02 | | 2022-03-01 | | 2022-02-28 | | 2022-02-27 | +------------+ 31 rows in set (0.00 sec)
  4、解决办法分析作者SQL语句:利用MYSQL帮助表的记录+数字变量实现填充日期。 新解决办法1:根据作者SQL语句分析结合MYSQL帮助表字段help_topic_id自增有序值填充日期。减少了数字变量。 新解决办法2:考虑新解决办法1如果MYSQL帮助表字段help_topic_id不是自增有序值的话执行的数据结果就是bug。所以取掉查询实体表利用MySQL的交叉关联方式生成0~31个数字填充日期。
  5、总结个人推荐使用新解决办法2实现填充日期。SQL语句无任何表依赖。
  感谢大家的评论、点赞、分享、关注…

摄影好帮手,微单好伙伴思锐ST124碳纤维三脚架使用评测引言摄影圈里一直流传着这样一句话买到第三个三脚架,才知道需要的是什么。除了相机和背包,三脚架应该是最重要的摄影工具了。室内棚拍自然不用多说,能上脚架肯定是要上脚架的,毕竟光线可控的聊一款青出于蓝的ROG显示器XG27AQ绝景评测引言ROG,即RepublicofGamers,寓意玩家国度,属于华硕旗下定位高端的子品牌。ROG应该是有史以来塑造得最成功的高端品牌,不仅是在发烧友极客圈里如雷贯耳,就是对普通消新时代电视机的选购攻略,一文讲全,原则和要点要记好新时代电视机的选购攻略,一文讲全,原则和要点要记好买电器,其实和家里装修一样,是一件很具有个性化的事情。每个人的喜好追求可能都不一样,所以没法保证大家喜欢的电器都是一样的,不过随着公元前841年,基督教圣经历史早现赵氏孤儿公元前841年,此时的中国正处于西周王朝,周厉王当政,政治黑暗,民不聊生。厉王暴虐成性,奢侈专横,百姓都公开议论他的过失。周厉王大怒,找到一个卫国的巫师,让他来监视那些议论的人,巫游成都宽窄巷子的一点想法十年前在深圳打工,记得晚上的街市是十分繁华的。年轻人多,且商铺夜市热闹。十年后来到成都。今晚逛了一圈宽窄巷子。感觉年轻人还是挺多。这就是青春的时代,青春的中国。同行的朋友说,这里商公元33年的耶稣和公元33年的中国耶稣降生于公元元年,生于中东地区的伯利恒,今巴勒斯坦地区,古称迦南地。圣经称之为流奶与蜜之地,据说那里盛产的葡萄需要两个人肩膀着扁担才能抬起一串,是古代以色列人十分向往的地方。耶稣客车不按标志牌规定路线行驶会被处罚数千根据法律规定,班线客车是必须按照标志牌规定的路线行驶的。而实际中,有些驾驶员会比较任性,觉得只要起始点和目的地正确完事,有时为了抄近路,或是规避一些收费。选择了不与标志牌规定的路线大客车以包车为名义运输散客可能罚3万到10万时值暑运或者春运时节,一些运输公司名下的大客车瞄准了特殊时间段的市场需求。会以包车的名义,把一定区域的旅客送至指定的区域。而一些驾驶员朋友反馈,有些时候会遭受相关部门的处罚,罚款甚新房装修避雷指南,你应当知道的这些装修常识新房装修避雷指南,你应当知道的这些装修常识!对年轻人来说,居住的地方大多都是通过房产中介租来的,但是只有这个城市拥有一套属于自己的房子才算是真正有了归属感,不然总会有一种无法融入的处处实用的新房装修小妙招,提高你的生活品质处处实用的新房入住小妙招,提高你的生活品质!通过自己的奋斗在陌生的城市拥有了一套属于自己的房子,是一件非常幸福的事情,当我们拿到钥匙的那一刻,心情也变的无比激动起来!想要顺利入住新洗碗洗菜都省心,厨房装上小厨宝,真像网友说的那样好用吗?随着生活条件的提高,注重健康卫生和生活品质成为必要的生活追求。在厨房装修方面,人们更是体验到了科技的力量给生活带来的便捷。越来越多的家庭在厨房装修时,选择在厨房里安装小厨宝用来洗手
腾讯之疼为什么老外喜欢夸腾讯,而国内却骂声不断?之前,我们说阿里巴巴时,有不少朋友强烈要求我们也说说腾讯,今天我们就满足大家的要求。首先,我们还是要很清楚,腾讯是一家什么样的公司?从商业角度看,腾讯这个公司可以写入商业教科书,成荣耀从华为脱离独立后出的手机,系统是不是无法升级鸿蒙系统?脱离之前的型号都可以脱离后出的,比如V40以后的机型,暂时不支持了,除非以后荣耀要接入适配才可以现在接入估计荣耀也上M国黑名单了不会,正常升级鸿蒙系统,好用!荣耀脱离华为之前的手机大写的好评!越开越喜欢,蔚来ES8备受宠蔚来ES8是一款高性能纯电动SUV,也是蔚来最新的量产车,备受广大电车爱好者的喜欢。据了解,蔚来ES8的座椅采用的是七座版232布局以及六座版222布局,同时,这款车的车长超过5米流量私域化趋势掘金私域电商关键在哪工人日报中工网记者杨召奎眼下,电商流量的格局随着私域流量的兴起发生了很大变化。所谓私域流量,就是个人拥有完全支配权的账号所沉淀的粉丝客户流量,可以直接触达多次利用的流量。对于商家来国庆旅行必备!vivoX70Pro让小白秒变摄影大师每年的国庆假期,都是我国公众旅行的高峰期!而在旅行途中,拍照是一个非常重要的环节。游客们不但可以通过拍照的方式来记录旅途中的美好,还能以这种方式来与亲友分享自己的欢乐。但大家在旅途64核Zen3锐龙线程撕裂者无缘今年相见AMD的7nmZen3产品线已经布局差不多了,还没发布的就是锐龙Threadripper线程撕裂者5000系列了,之前传闻说是拖到今年11月发布,不过最新消息称显示它还会继续跳票,Facebook进一步押注元宇宙?成功的可能性多高?昨天有个新闻,facebook以前的VRAR主管博斯沃斯将升任为facebook的CTO。博斯沃斯简历2004年哈佛毕业,进入微软担任软件设计。2006年加入facebook。参与还在为买药难而烦恼吗?智能采购了解一下近年来,随着人工智能大数据等技术的不断发展,传统医药行业也逐渐向智能化方向发展。为了解决传统药店信息不对称缺乏精细化管理等问题,一些企业利用互联网技术将分散的零售终端进行连接,利用手机电量剩一半就充比较好,还是快没电了再充比较好?为啥?如今我们的生活已经离不开智能手机,这个小小的机器几乎已经囊括了所有我们日常生活中需要用到的功能,而不仅仅是打电话发短信。如今的手机已经在某种程度上取代了电脑电视和相机的部分功能,而为什么现在很多人不在微信朋友圈发帖而喜欢在头条上发帖?无论微信朋友圈还是今日头条,都因具有发帖的功能而深受大家的喜爱。那现在为什么大家都纷纷转移阵地,放弃曾经火热的微信朋友圈而选择到今日头条发帖呢?之所以出现这样的情况,是因为涉及到一创新支付新渠道数字人民币加快融入日常消费来源人民网近期,数字人民币钱包开立呈现较高增速,钱包功能不断丰富同时,数字人民币试点场景也呈现快速扩张趋势,已覆盖生活缴费餐饮服务交通出行购物消费政务服务等多个领域。据了解,本月初