0
我正在使用php。我有一個桌子事件。其中有三個字段,EventID,EventName和EventTime。如何獲取當前時間和eventTime之間的時間差
我已經使用日期時間格式爲EVENTTIME字段。
現在我想寫一個查詢返回當前時間和事件之間的時間差異。
我希望自己的打印結果如下: - eventID發生1小時20分鐘前。
請給我建議我該怎麼做。
預先感謝您。
我正在使用php。我有一個桌子事件。其中有三個字段,EventID,EventName和EventTime。如何獲取當前時間和eventTime之間的時間差
我已經使用日期時間格式爲EVENTTIME字段。
現在我想寫一個查詢返回當前時間和事件之間的時間差異。
我希望自己的打印結果如下: - eventID發生1小時20分鐘前。
請給我建議我該怎麼做。
預先感謝您。
嘗試這一個 -
SELECT EventID, TIME_FORMAT(TIMEDIFF(NOW(), EventTime), 'occured %H hour %i minutes ago') diff FROM table;
SELECT EventID, CONCAT('occured ', hours, IF(hours > 1, ' hours ', ' hour '), minutes, IF(minutes > 1, ' minutes', ' minute'), ' ago') FROM (
SELECT EventID,
@diff:=TIMEDIFF(NOW(), EventTime),
EXTRACT(HOUR FROM @diff) hours,
EXTRACT(MINUTE FROM @diff) minutes
FROM EVENT) t;
我這樣做完全是這樣的: -
SELECT
placeID,
IF(TIMEDIFF(NOW(), comment_datetime) > '01:00:00',
TIME_FORMAT(TIMEDIFF(NOW(), comment_datetime), 'occured %H hour %i minutes ago'),
TIME_FORMAT(TIMEDIFF(NOW(), comment_datetime), '%i minutes ago')
) diff
FROM
place_comments;
這可能是最好的方式,如果你想這樣做純粹的MySQL ,就我所能看到的唯一缺點是它會返回例如「00小時和19分鐘前」或「07小時和01分鐘前」。 – zrvan
謝謝先生......請告訴我,如果我只想顯示「19分鐘前」如果小時小於1,我該怎麼辦?如果小時是1或多於1,那麼這應該顯示小時和分鐘...... –
@zrvan你說得對。在這種情況下,我們應該手動檢查這些值並格式化數值。 – Devart