首页 > 数据库 >写一条sql列出开始日期和结束日期之间的每一天(包括起止日期)

写一条sql列出开始日期和结束日期之间的每一天(包括起止日期)

时间:2023-03-23 17:23:03浏览次数:54  
标签:03 seq UNION 起止日期 日期 sql 2023 DATE SELECT

给定一个开始日期和结束日期,写个sql把中间的每天都查出来(包括开始和结束日期)。

给定开始时间是2023-03-12,结束时间是2023-03-22,sql如下:

SELECT DATE_ADD('2023-03-12', INTERVAL seq DAY) AS `day` 
FROM (
    SELECT 0 seq UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL
    SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
) t
WHERE DATE_ADD('2023-03-12', INTERVAL seq DAY) <= '2023-03-22'

查询结果

day
2023-03-12
2023-03-13
2023-03-14
2023-03-15
2023-03-16
2023-03-17
2023-03-18
2023-03-19
2023-03-20
2023-03-21
2023-03-22

如果要动态处理,可以使用mybatis的foreach标签处理该sql

参数dateStart、dateEnd、numList分别代表开始时间、结束时间、差值数集合

SELECT DATE_ADD(DATE_FORMAT(#{dateStart},'%Y-%m-%d'), INTERVAL seq DAY) AS `day`
FROM (
    SELECT 0 seq UNION ALL
    <foreach collection="numList" item="numItem" separator=" UNION ALL " open=" " close=" ">
        SELECT #{numItem}
    </foreach>
) 
WHERE DATE_ADD(DATE_FORMAT(#{dateStart},'%Y-%m-%d'), INTERVAL seq DAY) &lt;= DATE_FORMAT(#{dateEnd},'%Y-%m-%d')

 

标签:03,seq,UNION,起止日期,日期,sql,2023,DATE,SELECT
From: https://www.cnblogs.com/shamo89/p/17248212.html

相关文章

  • CentOS安装Mysql5
    title:CentOS安装Mysql5.7date:2022-08-1417:45:50tags:-Linux-CentOS-Mysqlcategories:-运维-数据库-Mysqlkeywords:'Linux,CentOS,Mysql'de......
  • 关于Mysql中文字段的排序
    发表这个帖子是因为产品的一个需求,按照名称首字母正序排序。目前所有的库默认的字符集都是utf8mb4,排序规则是utf8mb4_general_ci,这种排序规则不支持按中文的拼音首字母......
  • MSSQL PIVOT和UNPIVOT使用说明
    一、版本要求1.数据库的最低版本要求为SQLServer2005或更高。2.必须将数据库的兼容级别设置为90或更高。3.查看我的数据库版本及兼容级别。如果不知道怎么看数据库......
  • mysql8主从复制(一主三从) docker
    一、准备挂载文件为了将配置文件在宿主机做挂载,先运行测试镜像拷贝配置文件1、拉取镜像dockerpullmysql:8.0.262、创建测试容器mysql-demodockerrun-it-p330......
  • SAP ABAP 创建DN交货单常见报错:对干直到所选日期的交货没有到期的计划行
      检查:1.该销售订单是否已完成交货;2.交货日期是否在计划交货日期之后或者是同一天;3.交货日期是否在物料可用日期之前;4.行项目的确认数量是否大于0;5.物料是否库存......
  • sqlmap简单使用
    先安装python,再将sqlmap的解压文件复制到python根目录中windows下sqlmap主要命令pythonsqlmap.py-h        //查看帮助信息pythonsqlmap.py-u"url"......
  • 数据仓库SQL代码规范
    1.命名规则:数据库、表、列、索引等名称应使用有意义、易于理解和记忆的命名方式。应使用小写字母和下划线,避免使用大写字母和特殊字符。应避免使用保留字和关键字作为名......
  • Mysql常用语法详解
    一、数据库创建数据库createdatabase数据库名;查询所有数据库showdatabases;查看正在创建的数据库信息showcreatedatabase数据库名;删除数据库dropdatabas......
  • SQL注入
    【有回显SQL注入】判断注入类型:由于输入的数据id是数字,我们并不知道服务器将id的值认为是字符还是数字,因此我们需要先来判断是数字型注入还是字符型注入(虽然从源码看......
  • MySQL创建数据库(CREATE DATABASE语句)
    在 MySQL 中,可以使用 CREATEDATABASE 语句创建数据库,语法格式如下:CREATEDATABASE[IFNOTEXISTS]<数据库名>[[DEFAULT]CHARACTERSET<字符集名>] [[DEFAUL......