MySQL选择天数内的日期
Posted
技术标签:
【中文标题】MySQL选择天数内的日期【英文标题】:MySQL Selecting Dates Within Number of Days 【发布时间】:2015-09-15 07:29:05 【问题描述】:我有一个类似这样的 mysql 表:
item | order | start date | end date
------------------------------------------
1 1 2015-09-15 2015-09-20
2 1 2015-09-15 2015-09-20
1 2 2015-09-20 2015-09-25
2 2 2015-09-20 2015-09-25
我想要做的是执行一个查询,该查询将检查任何结束日期是否在未来开始日期的 7 天内,并返回结果。有谁知道如何做到这一点?
编辑:我想应该更具体 - 订单的开始日期和结束日期(在这种情况下,例如示例表中的订单 2)可以在 7 天内彼此。我想检查订单 1 的结束日期是否在订单 2 开始日期的 7 天内。抱歉,如果之前不清楚。
【问题讨论】:
【参考方案1】:你可以使用datediff
函数。
select * from table_name
where
start_date > curdate()
and datediff(end_date,start_date) between 0 and 7
【讨论】:
在我的示例表中,order 2
不会返回正数吗?
是的,您应该从给定示例中获取最后 2 行。
但是,即使订单 1 的结束日期不在订单 2 的开始日期之内,因为订单 2 的开始日期和结束日期相隔 7 天内,这是否会给出肯定的结果?
所以你的意思是应该对类似的订单进行检查,其中第二个订单的开始日期在订单 1 的结束日期的 7 天内?如果是这样,表中是否有一个主键来定义哪个是一阶或哪个是二阶?
我的意思是说 - 我想检查订单 1 的结束日期是否在订单 2 的开始日期内 7 天,但我不想包括订单 2 的开始和结束日期是否在 7 天内彼此的。我只想查看订单 1 的结束日期是否在订单 2 开始日期的 7 天内。抱歉,如果之前不清楚。编辑:应该补充一点,这应该扩展到 100 个订单。以上是关于MySQL选择天数内的日期的主要内容,如果未能解决你的问题,请参考以下文章