2011-07-29 97 views
1

我有與follwing記錄中的一個字段START_TIME表:Mysql的日期和時間差

2011-07-26 14:30:00 
    2011-07-28 08:00:00 

我需要做的是比較場start_time與當前日期時間和節目只記錄如果它們之間的差異小於5分鐘。它應該顯示當前日期的記錄只有

這是我的嘗試:

SELECT * FROM jqcalendar WHERE StartTime <= NOW() - INTERVAL 5 MINUTE 
+0

您可能需要澄清你的問題,而不是一次又一次重複着同樣的意見。至少你的查詢沒有顯示任何試圖顯示「僅當前日期的記錄」,你也應該確保你的示例數據包含「今日」數據(2011-07-28是我住的昨天)。 – Select0r

+0

@rajesh:如果「當前(系統)日期時間小於5分鐘」是什麼意思?與「StartDate」值相比較?所以'StartDate'在未來呢? –

回答

2

用mysql函數TIMEDIFF(date1,date2)

select * from jqcalendar WHERE TIMEDIFF(now(), StartDate) < 500 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timediff

+0

它沒有顯示當前日期的記錄。我只需要當前日期記錄 – rajesh

+0

只是在函數中切換參數。它應該是TIMEDIFF(now(),StartDate) –

+0

@MartinTaleski:在你的例子中什麼是'5'?它是分鐘,一天,...? MySQL參考可能不清楚TIMEDIFF結果轉換爲數字。 –

1

你試過

StartTime > NOW() - INTERVAL 5 MINUTE 

?我想你只是繞過你的運營商。

+0

其未顯示當前日期的記錄。我只需要當前的日期記錄 – rajesh

0

TIMESTAMPDIFF(MINUTE,start_time,now()) < 5

+0

你能詳細說明你的代碼嗎? – dgilperez

+0

現在和start_time之間的時間差小於5分鐘,然後是。 – raulsi

+0

@raulsi考慮修改包含評論的答案 – Strawberry