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

如何让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语句无任何表依赖。
  感谢大家的评论、点赞、分享、关注…

Soul创始人用心打造Z世代新潮社交应用让年轻人不再孤独Soul创始人正在为Z世代年轻人打造一个全新的线上乐园,多样元素更能满足Z世代年轻人的社交需求。Soul创始人在此前提出的社交元宇宙理念得到了业内的一致好评,也将用户们的期待值再度搭载量子点显示屏,至今画质最好的小米电视5Pro发布!2999元起中奇万铎发自小米科技园鹅板凳公众号ebandeng在今天小米新品发布会上,率先登场的小米电视5Pro,有55寸65寸75寸三个版本。外观方面,采用全面屏设计,55寸版的小米电视5P一亿像素还有五摄,DxO得分121榜单登顶,2799起小米CC9Pro发布中奇万铎发自小米科技园区鹅板凳公众号ebandeng今年各大手机厂商频频放大招,一直不温不火的小米,用MIXAlpha秀了波肌肉后,今天也终于发布了全球首款量产的一亿像素主摄手机小新款iPhoneSE比小米还便宜,冷静下来想想值得买吗?黄阳发自凹非寺鹅板凳公众号ebandeng2020真是见证历史的一年。可能雷军自己也没想到,苹果的iPhone竟然卖到了比小米还便宜的价钱。昨天晚上十一点,在期待无数次落空后,苹果红米K30首发骁龙765G配120Hz屏幕1999元起,最便宜5G手机诞生中奇万铎发自红米K30发布会鹅板凳公众号ebandeng今天,小米在北京发布了RedmiK30系列5G新机RedmiBook13寸全面屏版Redmi小爱音箱Play和Redmi路由双十换机建议realme真我GTNeo2和真我GTNeo2T对比,差别在哪?时隔一个月realme又发布新机了,如果是入手了真我GTNeo2的用户估计得感叹自个的手机都没捂热呢。realme虽然频频发布新机,但对消费者却是比较友好,因为realme发布的机平遥古城景区免费送肖像银票书签受欢迎取时搭配照片30元被套路平遥古城是世界文化遗产,5A景区,吸引了大量的游客前去观光旅游。古城22个景点,门票130元,不分开售票。在一个景点的必经之路站了很多人堵住去路,原来是在排队拍照,景区会免费送一个为了拍摄飞鸟捕鱼瞬间大叔套路多真正精彩的照片需要更多耐心去西安一处河滩湿地公园游玩,发现有人在拍鸟,边小心靠过去想看看。鸟儿垂直俯冲入水捉鱼的瞬间非常的精彩,速度也非常快,很难拍到最精彩的时刻,对器材和耐心都有一定的要求。这时一位大叔手Mate10即将发布,AI时代如何保证用户隐私安全9月7日,美国三大征信公司之一Equifax发布公告称,公司数据遭到黑客攻击并被泄露,约1。43亿美国人的数据和信息外泄,包括客户姓名生日地址社会安全号信用卡号驾驶证号等。这一事件HUAWEIMateBookD(2018版)性能升级明显外观依旧轻薄时尚华为在今年夏天一次性发布了三款MateBook系列笔记本,分别为MateBookXMateBookEMateBookD,而前几天HUAWEIMateBookD(2018版)正式发布颜值超高,首款华为全面屏手机麦芒6无论从哪一方面来说,华为手机做的越来越好看已经是趋势了,因为事实证明那些拥有好看外观的手机在市面上无疑是很吃香的。华为最近推出的这款为青春而生的华为麦芒6就非常漂亮,大家觉得呢?首
膳魔师雪豹保温杯,好看足矣你选择保温杯的首要因素是什么?保温,还是外观?作为苦逼的上班族,基本上一天到晚都要坐在办公室,我对于保温杯的保温效果其实不是太看重,反而是有个漂亮外观的杯子更容易吸引我的目光。膳魔宝宝腰凳选错危害大,切记这两点!用抱抱熊X可折叠腰凳演示前言腰凳因能有效缓解徒手抱宝宝时的肩部和腰部的负担,又比婴儿推车携带方便,现在已经逐渐成为很多父母带宝宝出游的新选择。可是,也许很多父母都不太清楚,设计不合理的腰凳或者使用方式不对看了这张图,骨传导蓝牙耳机你只会选它AfterShokzTrekzAir第一次在数码群里听说骨传导耳机时,其技术特性就让我充满了好奇。去年满怀期待地体验了某款骨传导耳机众测,结果不论是做工还是使用体验,都让我失望之极!是那个品牌产品的问题?还是骨传导耳发个笑话给你降降温慢慢看,笑的肚子疼1钱包丢了一天,上班路上,一个人拍了拍我的肩膀说哥们儿,你的钱包是不是丢了?我一摸,惊出一身冷汗说道真丢了!谢谢你提醒我。那人自言自语地走开难怪我掏了半天都没掏到。2蹦上天老师同学这个有逼格的蓝牙音箱还能当充电宝随着互联网数字娱乐的爆发,在线音乐已经成为主要的欣赏音乐途径。无线音箱,则是在线音乐的好拍档,能够让我们随心的享受音乐。目前无线音箱主要分为蓝牙音箱和WIFI音箱。蓝牙音箱的优点是手机损坏运行卡顿成用户主要换机动向!现在要换好手机该选谁?近日,中国移动发布了2020年第二期5G终端消费趋势报告,据报告里给出的用户更换手机动机调查结果显示,大多数用户更换手机的原因比较一致,主要在于旧机型的损坏运行速度变慢卡顿内存不足千元机的堆料能达到什么程度?iQOOZ3的体验实现裂变在最近一段时间,多款千元新机陆续登场,不但选择多了,而且新机都在配置上还带来了极大的诚意,进一步提升大家的使用体验。其中,iQOO就延续了自己对性能和游戏体验的追求,推出了千元机价这两款旗舰,为何一款让用户惊喜不断,另一款让用户叫苦不迭?最近,不少人有着类似的问题,在4000元预算下想买一款骁龙888旗舰,哪款更值得入手?实际上目前在4000元预算下,可入手的骁龙888旗舰有不少选择,但是其中能力比较完善,能让大多骁龙870旗舰越来越多,为何一加9R能如此热销?用户都这样说不久前,迪迦奥特曼跨界成为了一加9R的产品大使,获得众多网友的目光,在开售之后器销量表现更是令人亮眼,不但一举拿下各大电商平台全价位段品牌销量单品销量单品销售额三冠王,而且在全渠道德国制造就是品质保障?Beyerdynamic拜亚动力A20耳机放大器试听源起由于专业的缘故,在上学的时候就特别喜欢音频产品。虽然很喜欢,可我充其量只是个普通的大众粉,对于HIFI这样的玄学只是偶尔凑热闹。比如,去年10月份就去参加了HIFIMAN高端产BOSE降噪耳机太贵?体验性价比超高的Linner(聆耳)NC50蓝牙耳机很多人喜欢用耳机听音乐,而蓝牙耳机由于不用受线材束缚,越来越为人们所喜爱。可是,不论是在通勤的公交地铁上,还是差旅的高铁飞机上,不可避免地被外界的噪音所侵扰而不能静心地欣赏音乐。于