Получить статистику по дням - столбец даты и времени - mysql / php - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть проблема, которую я не могу решить самостоятельно.Лучше всего было бы, если бы можно было сделать это напрямую из mysql, но если нет, то вычисления по php также хороши.

У меня есть таблица с 3 столбцами: id, время, значение

Теперь значением времени является datetime (пример: 2012-11-03 00:13:12)

Я хочу создать статистику за последние 7 дней.Допустим, у меня есть 7 строк, а сегодня 2012-12-20.

Вот строки: значение datetime
2012-12-20 00:12:12 2
2012-12-2004:06:15 4
2012-12-20 03:12:14 5
2012-12-18 03:12:14 7
2012-12-16 12:12:14 3
2012-12-16 14:23:34 2
2012-12-15 14:23:34 9

Если я хочу получить отчет за последние 7 дней, это будет:

2012-12-14 -> значение = 0
2012-12-15 -> значение = 9

2012-12-16 -> значение = 5

2012-12-17 -> значение = 0

2012-12-18 -> значение = 7
2012-12-19 -> значение = 0

2012-12-20 -> значение = 11

В настоящее время у меня есть это (извлечение записей за последние 7 дней):

$date=date("Y-m-d");
$date=date ("Y-m-d", strtotime ( '-7 day' . $date ) );  
$qry="select value,date from mytable where date>'$date'";
$res=mysql_query($qry) or die("Couldn't select Information : ".mysql_error());
while($row=mysql_fetch_array($res))
    {
        echo $row["value"];
    }

Я надеюсь, что кто-то может помочь с советом.Заранее спасибо!Влад

1 Ответ

4 голосов
/ 21 декабря 2011

Это должно быть относительно легко решить, используя только MySQL.Это очень похоже на вопрос: MySQL Query GROUP BY день / месяц / год

Вам нужно изменить свой запрос, чтобы он получал все записи за данную неделю.

SELECT DAY(date) , SUM(value)
FROM mytable
WHERE WEEK(date) = WEEK(NOW())
GROUP BY DAY(date)

Также очень легко изменить способ группировки чисел, например, по месяцам, используя GROUP BY MONTH(date).Вы также можете заставить MySQL отображать имя дня в виде поля, выполнив SELECT DAYNAME(date). Для получения более подробной информации о доступных функциях ознакомьтесь с Руководством пользователя MySQL по функциям даты и времени .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...