这是我的问题,我想从表中获取下30天的记录。我的桌子上有一个字段。例如:在我的表格中,我有resource_date
,在此列中,我有很多从2013-02-05
到2015-10-10
的记录。说,如果我今天登录网站(今天的日期是16/01/2015
,它应该在接下来的15天内获取记录,依此类推)。这该怎么做?提前致谢
答案 0 :(得分:2)
一种方法
SELECT *
FROM table1
WHERE resource_date >= CURDATE() + INTERVAL 1 DAY -- skip today
AND resource_date < CURDATE() + INTERVAL 17 DAY -- 15 days starting tomorrow
这是 SQLFiddle 演示
答案 1 :(得分:1)
在MySQL中,您可以使用NOW()
函数获取当前DATETIME
,并使用INTERVAL
关键字获取时间间隔。
因此,要获取resource_date
在未来30天内的记录,您可以使用:
SELECT *
FROM `my_table_name`
WHERE `resource_date` >= NOW()
AND `resource_date` < NOW() + INTERVAL 1 MONTH
;
在实践中,您应该很少使用SELECT *
,并且应该考虑在此查询中添加LIMIT
,以防止您的应用程序返回“太大”的结果集。
答案 2 :(得分:0)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
...
WHERE
'resource_date'> NOW() AND
'resource_date'< DATE_ADD(NOW(), INTERVAL 31 DAY);
小心我认为现在()会做几分钟和几小时,所以你错过了一天的一部分。
答案 3 :(得分:0)
WHERE resource_date >= CURDATE() AND resource_date <= DATE_ADD(CURDATE(), interval 15 DAY)