[英]Retrieve MySQL records where date is X day ago
您好,我正在嘗試從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 DAY前(准確)獲取數據。 有人能指出我正確的方向嗎? 謝謝您的幫助...
最好的方法是:
WHERE o.invoice_date >= CURDATE() - INTERVAL 30 DAY AND
o.invoice_date < CURDATE() - INTERVAL 29 DAY
這使查詢引擎可以使用o.invoice_date
上的索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.