2013-08-12 5 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

чем проблема у ¨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

Это, похоже, сработало, мне просто нужно сделать некоторые математики, чтобы проверить, что он выбрал правильные lol – Danbyization

+0

Это зависит от ... вы можете использовать '<= 7' или' <7' или даже '<7' и' не 0', чтобы не учитывать сегодняшние данные. '<7' означает, что вы получаете сегодня и за 6 дней до сегодняшнего дня,' <= 7' означает, что вы получаете сегодня и за 7 дней до сегодняшнего дня и 'WHERE DATEDIFF (CURRENT_DATE, upload_date) <= 7 И 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

Я просто пробовал этот код, и он просто выбирает их всех, полностью игнорирует бит датиффа – 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

Смежные вопросы