2013-08-12 47 views
0

我想從我過去7天內上傳的表中選擇數據。這是我到目前爲止,但它不工作。選擇過去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> 

有人能幫忙嗎?

+0

什麼爲u [R得到的問題? –

+0

嘗試'CURRENT_DATE()'(帶括號)。 'CURRENT_DATE'是一個功能。哦根據[手冊](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html)你現在應該有什麼工作。 (除了其他問題) – AmazingDreams

+1

和'FROM'在哪裏?爲什麼在'WHERE'之後? –

回答

0

的問題是,您的查詢是無效的。您將TotalTruckDamageSum分配到WHERE。第二個語法錯誤是FROM應該在WHERE之前。最後但並非最不重要的一點是,如果你想得到DATEDIFF的非負數結果,那麼應該先寫更大的日期。

應該是:

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

這似乎有效,我只需要做一些數學來檢查它選擇了正確的大聲笑 – Danbyization

+0

這取決於...你可以使用「<= 7」或「<7」,甚至是「<7」和「不是0'來避免計算今天的數據。 '<7'意味着你今天和6天前得到了今天,'<= 7'意味着你今天和7天前得到今天和'WHERE DATEDIFF(CURRENT_DATE,upload_date)<= 7 AND DATEDIFF(CURRENT_DATE,upload_date)! = 0'意味着你得到當天前7天,而不是今天。 –

+0

非常完美,非常感謝。 – Danbyization

0

應該

sql9="SELECT SUM(TruckDamage) 

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

我只是試過這個代碼,它只是選擇他們都完全忽略了datediff位 – Danbyization

+0

請試試我的答案。一切都被解釋了。 –

0
$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> 
+0

該代碼只顯示空白。 – Danbyization

+0

每天都在變化 – Notepad