我有一个包含匹配项及其日期(在 DateTime 列中)的 mySQL 表。
是否可以获取从第 X 天到第 X+n 天的所有匹配项,然后获取从第 X+n 天到第 X+2n 天的所有匹配项...?
我会用它来“限制”我的结果:如果我在第 1 页,我会得到从第 1 天到第 5 天的所有匹配项(例如),在第 2 页,我会得到从第 6 天到第 1 天的所有匹配项10等
我想我不能使用 LIMIT
子句,因为它只限制我得到的行(基于我想要的行数而不是天数)
最佳答案
您可以使用DATE_ADD
函数来完成
SELECT *
FROM table
WHERE date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY)
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-add
编辑:
如果你想用它来分页,你可以用下面的方法来做:
$page = 0; //receive it i.e with $_GET, but be aware of sql injection
$intervalInDays = 30;
//create db connection...
$sql = "
SELECT *
FROM table
WHERE date
BETWEEN DATE_ADD(DATE('your startdate'), INTERVAL (".$page * $interval.") DAY)
AND DATE_ADD(DATE('your startdate'), INTERVAL (".($page+1) * $interval.") DAY)";
//query and fetch...
关于mySQL - 日期时间限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24431723/