как получить данные по конкретному месяцу и году в MySQL PHP - PullRequest
0 голосов
/ 02 апреля 2012

Хорошо, у меня есть база данных, в которой все мои пользователи зарегистрированы с их datetime, которая хранит в моем поле даты и времени в MYSQL значение 2012-03-31 12:13:42, теперь я хочу получить COUNT пользователей в соответствии с year и month.

Поскольку я хочу представить данные диаграммы для этой цели, я хочу, чтобы общее количество клиентов было добавлено в January, feb, march и т. Д. В конкретном году.

то есть это должно быть year specific, что в 2010 Jan скажем 52 клиентов в 2010 Feb скажем 72 клиентов .

Примечание : запрос, который я хочу выполнить, использует PHP и Mysql.

Ответы [ 2 ]

7 голосов
/ 02 апреля 2012

Вы можете использовать функции даты MySQL

SELECT YEAR(date_field) as stat_year,
       MONTH(date_field) as stat_month,
       COUNT(*) as stat_count
FROM `table`
GROUP BY stat_year,stat_month

Если вы хотите получить результаты только для определенного года / месяца, вы можете добавить условия к предложению WHERE (и удалить GROUP BY), как это

SELECT COUNT(*) as stat_count
FROM `table`
WHERE YEAR(date_field) = 2012
  AND MONTH(date_field) = 3
1 голос
/ 02 апреля 2012

Существуют разные SQL, которые помогут, вот один ...

SELECT COUNT(dt), DATE_FORMAT(dt, '%Y-%b') AS df FROM foo GROUP BY df;

, где foo - это имя вашей таблицы, а dt - столбец datetime.Обратите внимание, что это будет применять функцию DATE_FORMAT в каждой строке.Кроме того, вы можете изменить формат по своему усмотрению, например, использовать% m для числового месяца,% M для полного названия месяца и т. Д. Добавьте условие where для фильтрации при необходимости.Следующий SQL почти такой же ...

SELECT COUNT(dt), YEAR(dt) AS y, MONTH(dt) AS m FROM foo GROUP BY y, m;
...