sql查询获取接下来30天的记录

时间:2015-01-16 04:38:54

标签: mysql

这是我的问题,我想从表中获取下30天的记录。我的桌子上有一个字段。例如:在我的表格中,我有resource_date,在此列中,我有很多从2013-02-052015-10-10的记录。说,如果我今天登录网站(今天的日期是16/01/2015,它应该在接下来的15天内获取记录,依此类推)。这该怎么做?提前致谢

4 个答案:

答案 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)