第一种方法: cross join (就相当于mysql中的循环)
CROSS JOIN 把两张表中的数据进行 N * M的组合,即笛卡尔积
这里的两张表利用 union all都有5条数据,所以进行 cross join 后 就有25条数据
而指定的日期区间就会从这25条数据总产生
select CURDATE() - INTERVAL '1' day
NOW()(获取当前日期和时间) CURDATE() (获取当前日期) CURTIME() (获取当前时间)
这里用到的是一个 INTERVAL 函数,里面能够用变量去代替常量
具体参考https://blog.csdn.net/sqlquan/article/details/82699237
加个between and 就可以 得到指定日期和时间了
第二种方法: 依赖于一张表——数据足够你指定时间范围天数的表(缺点:依赖于另一张表)
直接上代码
结果查出来一串时间
然后依据自已的需要来筛选最后的结果
'2019-07-11' - INTERVAL(@num) DAY
的话上述已经讲解过了,有不懂的自行百度@num:=@num+1
的话就相当于后端语言中的num = num + 1; 而在(select @num:=0) t
这段代码中就相当于在执行@num:=@num+1
生效前给num = 0 定义了值为0