我想检索开始日期和结束日期之间的日期在今天和十天之后的数据。我在 rails 中执行此操作,但即使我在 MySQL 中获取查询,我也可以将其转换为 rails 活动记录。
像这样的东西:
select * from users where( between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
我想检索开始日期和结束日期之间的日期在今天和十天之后的数据。我在 rails 中执行此操作,但即使我在 MySQL 中获取查询,我也可以将其转换为 rails 活动记录。
像这样的东西:
select * from users where( between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
当 a < d 且 b > c 时,区间 (a, b) 与 (c, d) 重叠。此外,该curdate()
函数返回当前日期(“今天”)。要计算未来十天的日期,您可以使用+ interval 10 day
.
结合你得到的这些信息:
select ... where users.to > curdate()
and users.from < curdate() + interval 10 day
以下是逻辑片段而不是确切的代码。请试试。
select * from users
where users.fromDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33'
and users.toDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33';
还要检查 * SQLFIDDLE中的以下示例代码
根据您的问题的改写进行编辑..
猜你会更好,
where users.from between users.from and users.from + interval 10day
and users.to <= user.from + interval 10 day
这意味着,你from date
可以是任何东西(今天、昨天、一个月前、两年后……)。因此,您to-date
将根据上述任何 10 天间隔的日期进行验证from-date
希望这是有道理的......但再次,Joni 的回答填补了你今天的情况。:)