mysql - MySQL在不使用表列的情况下选择两列之间的范围日期
问题描述
在我的 sql 中,我想在不使用表列的情况下获取两个日期之间的日期差异 例如
SELECT BETWEEN '2012-01-10' AND '2012-01-15' as date1;
我必须得到以下日期作为输出 '2012-01-11' '2012-01-12' '2012-01-13' '2012-01-14'
如何编写查询以获取上述输出
解决方案
如果您正在运行 MySQL 8.0,则可以使用递归查询来执行此操作:
with recursive cte as (
select '2012-01-10' + interval 1 day as dt
union all
select dt + interval 1 day from cte where dt + interval 1 day < '2012-01-15'
)
select * from cte
这会在输入给定的范围内每个日期生成一行。
推荐阅读
- javascript - css flex 列自动高度
- php - 本地主机 Wordpress 永久链接不起作用
- excel - Excel VBA在相邻单元格中查找具有最大值的字符串
- angular - 如何知道是否设置了 Observable 更改值或最终值
- javascript - Eslint 自定义导入订单
- php - PHP Array in Google Maps
- javascript - 期望在箭头函数 array-callback-return 结束时返回一个值
- typescript - 如何使用 TypeORM 在 NestJS 中实现分页
- php - 如何更新已经存在的mysql表
- android-studio - 如何防止 NotificationListener 断开连接?