【问题标题】:Select data uploaded in last 7 days选择过去 7 天上传的数据
【发布时间】:2013-08-12 09:02:19
【问题描述】:

我想从我的表格中选择过去 7 天内上传的数据。这是我到目前为止所拥有的,但它不起作用。

$sql9="SELECT SUM(TruckDamage) 
WHERE DATEDIFF(`upload_date`, CURRENT_DATE) < 7 
AS     TotalTruckDamageSum FROM jwtdriversbank2";  
$result9=mysql_query($sql9);
$rows9=mysql_fetch_assoc($result9);
$sum8=$rows9['TotalTruckDamageSum'];
?>
<div>
Total Truck Repair Cost's: &pound;<?echo $sum8?><br>

有人可以帮忙吗?

【问题讨论】:

  • 你遇到了什么问题?
  • 试试CURRENT_DATE()(带括号)。 CURRENT_DATE 是一个函数。哦,根据the manual,您现在拥有的应该可以工作。 (除其他问题外)
  • FROM 呢?为什么在WHERE之后?

标签: php mysql database date


【解决方案1】:

问题是您的查询无效。您将 TotalTruckDamageSum 分配给 WHERE。第二个语法错误是FROM 应该在WHERE 之前。最后但并非最不重要的一点是,如果您想获得DATEDIFF 的非负结果,则应该首先设置较大的日期。

应该是:

$sql9="SELECT SUM(TruckDamage) AS TotalTruckDamageSum FROM `jwtdriversbank2` WHERE DATEDIFF(CURRENT_DATE,`upload_date`) <= 7";

【讨论】:

  • 这似乎奏效了我只需要做一些数学来检查它是否选择了正确的大声笑
  • 这取决于...您可以使用&lt;= 7&lt; 7 甚至&lt; 7not 0 来避免计算今天的数据。 &lt; 7 表示你今天和今天前 6 天,&lt;= 7 表示你今天和今天前 7 天,WHERE DATEDIFF(CURRENT_DATE,upload_date) &lt;= 7 AND DATEDIFF(CURRENT_DATE,upload_date) != 0 表示你在当天前 7 天而不是今天。
【解决方案2】:

应该是

sql9="SELECT SUM(TruckDamage) 

AS     TotalTruckDamageSum FROM jwtdriversbank2 WHERE DATEDIFF(`upload_date`, CURRENT_DATE()) < 7";  

【讨论】:

  • 我刚刚尝试了该代码,它只是选择了它们,完全忽略了 datediff 位
  • 请试试我的回答。一切都解释清楚了。
【解决方案3】:
$sql9="SELECT SUM(TruckDamage) AS     TotalTruckDamageSum 
                  where upload_date >= DATE_SUB(now(), INTERVAL 7 DAY)
                  FROM jwtdriversbank2";  

$result9=mysql_query($sql9);
$rows9=mysql_fetch_assoc($result9);
$sum8=$rows9['TotalTruckDamageSum'];
?>
<div>
Total Truck Repair Cost's: &pound;<?echo $sum8?><br>

【讨论】:

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