Проблема с запросом MySQL. Даты последнего месяца - PullRequest
1 голос
/ 02 августа 2011

У меня есть поле DateBill -DATETIME- в моей БД. Я хотел бы получить всю информацию из ПОСЛЕДНЕГО МЕСЯЦА.

Итак, сегодня это: 2011-08-02 12:00:00

Мой запрос:

SELECT *
FROM bills
WHERE DATE(dateBill) > DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AND status = 1
ORDER BY id_bill

Статус просто говорит, одобрен ли счет или нет.

Но я получил несколько странных результатов:

 2011-09-01 21:44:07
 2012-08-01 00:00:00

Я вставил эти значения только для проверки. Как видите, он не работает.

Любая помощь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 02 августа 2011

DATE (dateBill)> DATE_SUB (CURDATE (), INTERVAL 1 MONTH) также фиксирует даты в будущем.

включая следующий месяц

2011-09-01 21:44:07

и в следующем году

2012-08-01 00: 00: 00

добавить AND CURDATE () <= DATE (dateBill), если вам это не нравится ...</p>

0 голосов
/ 02 августа 2011
SELECT *
FROM bills
WHERE 
  YEAR(dateBill) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AND
  MONTH(dateBill) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AND 
  status = 1
ORDER BY id_bill
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...