簡體   English   中英

檢索日期為X天前的MySQL記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM