【问题标题】:Fetch rows only from specific date in mySQL仅从 mySQL 中的特定日期获取行
【发布时间】:2013-04-04 05:44:37
【问题描述】:

我正在尝试仅从 mySQL 中的特定日期(例如今天、昨天或 2 天前)获取行。我的行中有一个名为“日期”的列。 (包括像 1365053426 这样的日期)。

$result=mysql_query("SELECT count(*) as total from track WHERE `date` >= CURRENT_DATE
  AND `date`  < CURRENT_DATE + INTERVAL 1 DAY");

我试过这个查询,但它返回“0”。这样做的正确方法是什么?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    BETWEEN怎么样?

    SELECT COUNT(*) as TotalCount
    FROM   Track
    WHERE  Date BETWEEN CURDATE() + INTERVAL -2 DAY AND CURDATE()
    

    【讨论】:

    • + INTERVAL 1 DAY 对我来说是一个额外的知识.. 这是如何工作的:)?
    • @Kaii 它基本上从当前日期开始增加 1 天 :)DATE_ADD 相同
    • 加还是减?因为如果它会被添加,那应该是明天的吧?像例如BETWEEN April 4,2013 AND (April 4,2013 + INTERVAL 1 DAY)= April 5,2013我要复制逻辑吗:)
    • @Kaii 对。 + INTERVAL 1 DAY 将增加一天 + INTERVAL -1 DAY 将减少一天
    【解决方案2】:

    使用datediff()函数怎么样?

    SELECT count(*) as total from track WHERE datediff(now(),date)=interval day
    

    注意:间隔天可以从 0 开始声明 -> 取决于您想要显示的前一个日期

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多