为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何在MySQL中获取两个日期之间的日期列表选择查询

请问如何在MySQL中获取两个日期之间的日期列表选择查询

摇曳的蔷薇 2019-11-05 09:04:58
如何在MySQL中获取两个日期之间的日期列表选择查询我希望通过选择查询将日期列表放在两个日期之间。例如:如果我给“2012-02-10”和“2012-02-15”,我需要结果。date       ---------- 2012-02-10 2012-02-11 2012-02-12 2012-02-13 2012-02-14 2012-02-15我怎么能得到?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

试着:

select * from (select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 
 7 union select 8 union select 9) t0,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 
 7 union select 8 union select 9) t1,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 
 7 union select 8 union select 9) t2,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 
 7 union select 8 union select 9) t3,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 
 7 union select 8 union select 9) t4) vwhere selected_date between '2012-02-10' and '2012-02-15'

-今后的日期可达近300年。

[根据UrvishAtSynapse提出的编辑建议进行更正。]


查看完整回答
反对 回复 2019-11-06
?
POPMUISE

TA贡献1765条经验 获得超5个赞

set @i = -1;SELECT DATE(ADDDATE('2012-02-10', INTERVAL @i:=@i+1 DAY)) AS date FROM `table`HAVING @i < DATEDIFF('2012-02-15', '2012-02-10')

这将完全按照规定返回结果集。此查询只需要在datediff和adddate中更改两个不同的日期。


查看完整回答
反对 回复 2019-11-06
?
呼如林

TA贡献1798条经验 获得超3个赞

您可以创建一个表,其中包含您可能需要使用的所有日期:


date

2000-01-01

2000-01-02

2000-01-03

...etc..

2100-12-30

2100-12-31

然后按以下方式查询该表:


SELECT date

FROM dates

WHERE date BETWEEN '2012-02-10' AND '2012-02-15'



查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 776 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信