今天工作过程中,遇到了一个需要生成一个日期序列作为主表的需求。
方法一
以前的做法是通过借助于辅助表来实现,意思是说,生成一个整数序列1~N(N至少要大于所需序列的最大长度),并在数据库中创建这个表。然后结合DATE_ADD函数来实现就行。步骤如下:

  1. 创建一个表T_INT,创建一列INT_FIELD,数据类型为INT,存入数据0~10000,这里假设我们需要的序列长度不会超过10000.
  2. 然后,编写SQL,就可以获得时间序列。SQL如下:
SELECT DATE_ADD('2023-02-05', INTERVAL INT_FIELD DAY)
FROM T_INT WHERE DATE_ADD('2023-02-05', INTERVAL INT_FIELD DAY)<='2023-03-02'

这样,我们就获得了从2023年2月5日到2023年3月2日的一个时间序列。

方法二
今天刚刚学习了一种新的方式,借助于MYSQL8的递归函数,不用建立物理表就可以实现。SQL如下

 WITH RECURSIVE DATE_LIST (DATES) AS (       SELECT DATE('2023-02-05')  AS DATES       UNION ALL           SELECT DATE_ADD(DATES, INTERVAL 1 DAY)  FROM DATE_LIST WHERE DATE_ADD(DATES, INTERVAL 1 DAY) < '2023-03-02'  )   SELECT  DATES FROM DATE_LIST

在RECURSIVE定义的递归下,UNION ALL前面的部分相当于初始化递归函数。UNIONALL后面的部分实现递归调用,直到达到WHERE后的终止条件。

MYSQL生成日期列表相关推荐

  1. MYSQL 生成日期维度表

    这里写自定义目录标题 MYSQL 生成日期维度表 1.创建建维度表 2.生成维度数据函数 MYSQL 生成日期维度表 在报表统计中经常要用到日期维度进行汇总,所以需要提前生成通用的日期维度表. 1.创 ...

  2. python生成日期列表_PYTHON生成日期维度表

    数据仓库的定义之一是反应历史变化,数据或多或少都会包含时间特征,因此日期维度就成了数据仓库中不可或缺的维度之一,可以说在任何一个事实表中都会有一个或者多个日期维度的外键.日期维度可以尽可能多的包含日期 ...

  3. python生成日历_Python 生成日期列表

    Code:import datetime def create_assist_date(datestart = None,dateend = None): # 创建日期辅助表 if datestart ...

  4. mysql 范围内日期列表,mysql – 将日期列表条件中的日期转换为日期范围列表

    我想查找特定日期发生的所有记录. SELECT * FROM table1 WHERE date(column) in ($date1, $date2, ...); 但是,正如你们中的许多人所知,这种 ...

  5. oracle 生成日期列表,oracle下sql创建指定年份全年日期表(区分工作日)

    作者的话: 当系统执行到本处sql时,将本年度(或指定年份)一整年365天对应的是否为工作日情况数据插入到指定表中(如:0表示工作日,1表示双休日,法定节假日手动调整). 1.创建表: create ...

  6. Oracle生成日期列表

    SELECT TO_CHAR(TO_DATE('20190401', 'YYYYMMDD') + ROWNUM - 1,'YYYYMMDD') AS DATE_LISTFROM DUAL CONNEC ...

  7. mysql获取日期的月日_MySQL获取月,日的日期列表

    这是这个问题的mysql / java解决方案. 创建表语句: CREATE TABLE `date_table` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, ...

  8. MySQL中如何随机产生验证码,MySQL 生成随机数字 UUID MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法...

    想了解MySQL 生成随机数字.字符串.日期.验证码及 UUID的方法的相关内容吗,不剪发的Tony老师在本文为您仔细讲解MySQL 生成随机数字 UUID的相关知识和一些Code实例,欢迎阅读和指正 ...

  9. Mysql生成当月(指定月)所有天数 本周所有日期 当日24小时

    Mysql生成当月(指定月)所有天数 本周所有日期 当日24小时 生成当月所有天数 SELECTdate_format(date_add( DATE_ADD( curdate(), INTERVAL ...

最新文章

  1. 深度学习入门 基于Python的理论与实现
  2. merge合并2个json文件
  3. 提高工作效率:15个有用的项目管理工具
  4. linux 路径名长度限制,linux下 如何修改命令行提示符路径提示符路径长度
  5. 【学习笔记】自然数幂和
  6. android 网页json数据传输,如何将JSON格式的数据从WebView传递到HTML页面
  7. NIPS 2018 接收论文list 完整清单
  8. 【java】java ReentrantLock 源码详解
  9. PTA L2-006 树的遍历-二叉树的后序遍历+中序遍历,输出层序遍历 团体程序设计天梯赛-练习集...
  10. 车辆故障码api DTC查询
  11. Python网络爬虫实现音乐下载器和图片下载器功能
  12. 红帽linux安装ftp服务,红帽Linux安装FTP服务
  13. linux opendir路径_linux opendir readdir closedir函数
  14. 京东金融以应用为中心的DevOps体系建设(附PPT)
  15. Elasticsearch 中为什么选择倒排索引而不选择 B 树索引
  16. MySQL数据库 -- 库和表的操作
  17. 计算机主机光驱弹不出来怎么办,电脑光驱弹不出来的原因及解决方法
  18. 通过OpenCv的HoughCircles函数获取图片中的圆形
  19. 村上春树的《海边的卡夫卡》与中日现实
  20. 网络营销的两种主要理论

热门文章

  1. Django框架项目之课程主页——课程页页面、课程表分析、课程表数据、课程页面、课程接口、前台、后台
  2. 制作小功率调幅发射机
  3. 人工智能阿凡达平台发布,全力拥抱“元宇宙”
  4. 虚拟人成企业形象代言新战场,虚拟数字人制作赋能品牌新商业价值
  5. 小白兔视频格式转换器下载
  6. 电容三点式LC正弦波振荡电路的重要特性解析
  7. R语言3组患者倾向性评分匹配(PSM)
  8. 射频知识——基本概念和术语
  9. asp毕业设计—— 基于asp+access的客户管理信息系统设计与实现(毕业论文+程序源码)——客户管理信息系统
  10. 监控系统架构设计分层