【问题标题】:Mysql: results from last seven daysMysql:过去 7 天的结果
【发布时间】:2013-01-25 19:32:27
【问题描述】:

这是我第一次使用 PHP 和 MySQL 创建网站。如何查询 Mysql 搜索的结果以仅显示最近 7 天的结果?

我的数据库中的列是:

Id
Name
Date
Mensage

【问题讨论】:

  • StackOverflow 不适合回答这个问题。我们不会为您编写代码。您需要自己编写代码,如果您不确定为什么某些事情没有按预期工作,请发布代码并说明您期望它做什么,以及它实际上在做什么,包括所有错误消息。见ask advice
  • “我们不会为你编写代码。” -- 但你还是写了:D
  • 我尽我所能以各种形式进行教学。 :)
  • 注意:mysql()* 自 PHP 5.5.0 起已弃用,不建议编写新代码,因为它会在未来被删除。请改用mysqliPDO。由于命名参数支持,我个人更喜欢PDO 而不是MYSQLI
  • @JohnConde 通常我会同意你的看法,但由于这是用户第一次发帖,而且他的要求非常准确/清晰,所以这次让 Yan 松懈一下。毕竟他只要求几行。

标签: php mysql sql database


【解决方案1】:

有几种方法可以做到这一点。这是一个。

SELECT *
FROM tablename
WHERE `date` > CURRENT_DATE - INTERVAL 7 DAY

还有一个:

SELECT *
FROM tablename
WHERE DATEDIFF(`date`, CURRENT_DATE) < 7

仅供参考,您不应使用reserved keywords 命名您的列。这是个坏主意,只会给你带来麻烦。

【讨论】:

  • 虽然这是不好的做法,但如果通过“ `”括起来,您可以使用保留字
  • 即使date没有用反引号换行,它仍然可以工作,因为mysql允许它(它是保留关键字之一,即使没有反引号也可以使用 )。
  • @JohnConde 。 . .第一个版本要好得多,因为查询计划可以使用date 上的索引。
  • 在这里你可以看到我得到的错误 [link]igrejanavegantes.com.br/testes/comentarios.php
  • 请不要将 PHP 代码放在您的评论中。为这个问题创建一个新问题@YanCustodio
【解决方案2】:

获取最近 7 天的日期

SELECT DATE_SUB(NOW(),INTERVAL 7 DAY);

获取当前

SELECT NOW();

结合以上两部分有完整的查询示例

SELECT * FROM `table` WHERE `date_created` BETWEEN DATE_SUB(NOW(),INTERVAL 7 DAY) AND NOW();

通过使用此查询,您可以从数据库中获取数据,而不是使用 php mysql_query 和 mysql_result 函数执行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 2012-12-09
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多