MySQL: получать данные только за месяцы - PullRequest
0 голосов
/ 01 июня 2010

Несколько раз назад я спрашивал, как сделать так, чтобы данные отображались за месяц, я должен был дать неверное объяснение, потому что только что понял, что это не то, что я хочу:

Вот что я получил:

$req1 = ...
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 1 MONTH))

$req2= ...
AND v.date > (DATE_SUB(CURDATE(), INTERVAL 3 MONTH))
AND v.date < (DATE_SUB(CURDATE(), INTERVAL 2 MONTH))

Но проблема, представьте себе, что сегодня вы 10 июня, он рассчитает ВСЕ данные между

  • 10 июня до 10 мая
  • тогда 10 мая до 10 апреля ...

Но мне нужны данные:

  • с 1 мая по 1 июня,
  • с 1 июня по 1 июля ...

Вы понимаете, о чем я?

Ответы [ 3 ]

3 голосов
/ 01 июня 2010

Вы можете использовать:

WHERE YEAR(date) = 2010 AND MONTH(date) = 5

чтобы получить все строки, в которых дата указана в ГОДЕ 2010 и пятом месяце года.

2 голосов
/ 01 июня 2010

И МЕСЯЦ (v.date) = 6 И ГОД (v.date) = 2009 [чтобы получить все в июне 2009]

0 голосов
/ 01 июня 2010

выберите месяц (v.date), год (v.date), сумму (somedatacolumn) из группы таблиц по месяцам (v.date), год (v.date);

замените сумму любым вычислением, которое вы делаете

...