MySQL查询选择比x天更新的记录

问题描述 投票:1回答:1

我很抱歉,如果这听起来像一个非常基本的问题,但出于某种原因,今天我真的很难理解这一点。我有一个数据库表,其中包含date_added格式的2014-09-30 20:39:17列,我有一个网页,其中包含用户的过滤选项。基本上我想使用变量来选择不同的日期范围,如下所示:

SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED TODAY */
SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED WITHIN LAST 7 DAYS */
SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED WITHIN LAST 30 DAYS */

我需要投入什么才能使这些变量起作用?

php mysql sql datetime
1个回答
6
投票

你可以使用CURDATE()和非常简单的INTERVAL算术。

在以下示例中,假设查询是在2014-10-21 22:25:28执行的:

SELECT * FROM table WHERE date_added >= CURDATE()
                                  -- >= 2014-10-21 00:00:00

SELECT * FROM table WHERE date_added >= NOW() - INTERVAL 24 HOUR
                                  -- >= 2014-10-20 22:25:28

SELECT * FROM table WHERE date_added >= CURDATE() - INTERVAL 7 DAY
                                  -- >= 2014-10-14

SELECT * FROM table WHERE date_added >= CURDATE() - INTERVAL 30 DAY
                                  -- >= 2014-09-21
© www.soinside.com 2019 - 2024. All rights reserved.