您好,我正在尝试从MySQL DB中提取一些记录,我尝试过以下可能的解决方案,例如:
SELECT o.id_order, o.reference, o.id_customer, DATE_FORMAT(o.invoice_date, '%m%d%y') AS 'invoice_date'
FROM ps_orders AS o
WHERE DATE(o.invoice_date) = CURDATE() - INTERVAL 100 DAY;
要么
SELECT o.id_order, o.reference, o.id_customer, o.invoice_date
FROM ps_orders AS o
WHERE o.invoice_date = DATE_SUB(CURDATE(), INTERVAL 30 DAY);
但我一直得到0结果。
格式:
o.invoice_date
是2013-04-06 02:02:12(YYYY-MM-DD HH:II:SS)。
我不确定为什么我总是得到0结果。当我尝试使用此查询时:
SELECT o.id_order, o.reference, o.id_customer, o.invoice_date
FROM ps_orders AS o
WHERE o.invoice_date < CURDATE() - INTERVAL 30 DAY
ORDER BY o.invoice_date DESC;
它可以工作,但是我只想从x天前(准确)获取数据。有人能指出我正确的方向吗?谢谢您的帮助...
最佳答案
最好的方法是:
WHERE o.invoice_date >= CURDATE() - INTERVAL 30 DAY AND
o.invoice_date < CURDATE() - INTERVAL 29 DAY
这使查询引擎可以使用
o.invoice_date
上的索引。关于mysql - 检索日期为X天前的MySQL记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29579416/