簡體   English   中英

MySQL SELECT WHERE DATE大約是X天前

[英]MySQL SELECT WHERE DATE is approx X days ago

我有一個包含日期列的表。

表格數據是通過cron作業以不定期的間隔(而不是每天)插入的。

我只想選擇最接近X天前的行。

因此,例如,如果6月30日且6月25日沒有條目,我希望它從6月26日或24日(以最新的時間和最近的時間到5天前)為准,如果該條目沒有26日或24日,然后尋找27日或23日,依此類推...

日期存儲為YYYY-MM-DD HH:MM:SS。

任何幫助深表感謝 :)

假設TIMESTAMP列是insertion_ts? 綁定到您想要的DATE或TIMESTAMP:

   SELECT *
    FROM tbl
ORDER BY 
         -- We want the closest insertion_ts to our target date ...
         ABS(TIMESTAMPDIFF(SECOND, ?, insertion_ts)) ASC,
         -- ... and will favor the more recent in the unlikely event of a tie
         TIMESTAMPDIFF(SECOND, ?, insertion_ts) DESC
   LIMIT 1;

就像是 :

SELECT   id, date, ....
FROM     tbl
WHERE    date <= [your date YYYY-MM-DD HH:MM:SS]
ORDER BY date DESC
LIMIT 1
SELECT *
FROM `table`
ORDER BY ABS(DATEDIFF(`date`, (DATE_SUB(NOW(), INTERVAL X DAY)))) ASC
LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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