mysql - 如何通过单个查询显示存储在我的表中的两个日期之间的所有日期?
问题描述
我想显示特定记录的两个日期之间的所有日期
这是表格:
ID Start_Date End_Date
-------------------------
1 2013-01-14 2013-01-18
2 2013-02-01 2013-02-04
现在我想获取从日期到至今的所有日期。
预期产出
ID Date
-------------
1 2013-01-14
1 2013-01-15
1 2013-01-16
1 2013-01-17
1 2013-01-18
2 2013-02-01
2 2013-02-02
2 2013-02-03
2 2013-02-04
任何帮助将不胜感激
解决方案
编辑:: 这适用于 sql server(我的错误没有看到标签)。可能会为 mysql 做,并且它支持相同的日期函数
尝试像这样用您的表值替换我的硬编码值。这将带回 2 个日期之间的所有天数,包括开始日期。如果您也希望保留最大日期,则必须修改我的代码
create table #datediff
(
id int,
dates date
)
declare @min date, @max date,@df int
set @min = '2018-01-30'
set @max = '2018-02-5'
set @df = DATEDIFF(DAY,@min,@max)
while @df <> 0
begin
insert into #datediff
Values ( 1, DATEADD(D,-1,@max))
set @df = @df -1
set @max = DATEADD(D,-1,@max)
end
select * from #datediff
drop table #datediff
推荐阅读
- metal - 'nextDrawable' 非常难以捉摸的金属问题
- google-app-engine - 将 Google Cloud Memorystore 与 App Engine 服务连接起来
- wordpress - 从 wordpress 页面模板中的列表中删除喜欢不起作用
- python - Python - 基于另一个数组中相应最大值的非唯一值数组
- python - 棉花糖领域依赖
- wpf - 如何将项目添加到带有列的 ListViewBox?
- pandas - 熊猫中的数据框,如何堆叠列?
- go - 如何在 Golang 中计算 256 位整数的 log16
- google-bigquery - java BigQuery.insertAll(InsertAllRequest) 线程安全吗?
- javascript - 如何在 asyncData 之后滚动到元素?