php - MySQL查询以选择比x天新的记录

标签 php mysql sql datetime

如果这听起来像是一个非常基本的问题,我很抱歉,但出于某种原因,今天我真的很难理解这个问题。我有一个数据库表,其中有一个 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 */

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

最佳答案

您可以使用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

关于php - MySQL查询以选择比x天新的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26492197/

相关文章:

php - 电子邮件管道脚本在后缀中以无人身份而不是真实用户身份运行

php - 如何显示转义字符?

sql - 如何查询存储为文本的 XML?

mysql - 在两个日期之间选择数据的 SQL 语法有什么问题?

sql - 使用动态 SQL 循环遍历列名

sql - 将具有 HTML 字符编码的文本转换为数据库字符集

php - Wordpress-按自定义字段获取帖子

javascript - 语法错误 : unterminated string literal var address = "

php - 如何从存储在数据库中的图像中获取图像的高度和宽度?

Mysql触发器不更新连接表