сделать дифференциал в запросе DATE в MySQL - PullRequest
0 голосов
/ 23 сентября 2010

В чем отличие от этого запроса MySQL:

WHERE MONTH(date) = MONTH(CURRENT_DATE)

и это

WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()

Я пробовал оба, но я не вижу различий.

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Для сегодняшнего CURRENT_DATE, то есть: 23 сентября 2010 года:

WHERE MONTH(date) = MONTH(CURRENT_DATE) равно date также в сентябре, то есть с 1 сентября по 30 сентября любого года.*WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE() - date в течение последних 30/31 дней.Если мы будем на 23-м месте, это даст вам интервал между 23 августа 2010 года и 23 сентября 2010 года.

0 голосов
/ 23 сентября 2010

Первый

WHERE MONTH(date) = MONTH(CURRENT_DATE)

выберет строки, в которых месяц столбца date совпадает с текущим месяцем (например, все строки, для которых месяц поля date - сентябрь.

Второй

WHERE date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) AND CURRENT_DATE()

выберет строки, для которых поле date находится между настоящим моментом и месяцем назад.

...