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