我的数据库中有一个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
我插入这些值只是为了测试。如您所见,它无法正常工作。
请帮忙吗?
答案 0 :(得分:1)
DATE(dateBill)> DATE_SUB(CURDATE(),INTERVAL 1个月) 也记录了未来的日期。
包括下个月
2011-09-01 21:44:07
和明年
2012-08-01 00:00:00
如果您不喜欢,请添加AND CURDATE()< = DATE(dateBill)...
答案 1 :(得分:0)
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