[英]How do I, from a column of time values, compare them with the current time and get the closest value after the current time?
假設您在MySQL數據庫的列中有一個時間值列表。
Time
-----
10:15 AM
10:35 AM
10:55 AM
並說現在是10:27 AM。 如何在PHP中的變量中具體獲取上午10:35的值?
我知道我可以得到當前的時間
$currenttime = time();
然后使用
$some_time = strtotime($row['time']);
但是,如何獲取最接近的變量到$ some_time變量中呢?
您需要在記錄時間和參考時間之間具有最小增量的行,其中記錄時間大於參考時間。
SELECT * FROM SomeTable AS T
WHERE T.Time = (SELECT MIN(T2.Time) FROM SomeTable AS T2
WHERE T2.Time > ?)
'?' 是您的參考時間的占位符。
您可以使用TIMESTAMPDIFF
從查詢中獲得最接近的時間:
SELECT
time, TIMESTAMPDIFF(MINUTE, time, NOW()) AS minutes
ORDER BY
minutes, time DESC
如果您只想選擇最近時間的一個拖車:
SELECT
time, TIMESTAMPDIFF(MINUTE, time, NOW()) AS minutes
ORDER BY
minutes, time DESC
LIMIT 1
嘗試獲取當前時間和可能時間之間差異的絕對值。 值最低者最接近。 從那里你唯一要擔心的是,如果一個給定的時間同樣接近兩次你可以用你喜歡的方式處理(對我來說,在這一點上簡單地回合似乎是最合理的)
問候,
丹尼斯·M
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.