2015-07-13 24 views
0

這是我的查詢:如何獲得連續幾週日在MySQL

SELECT (HOUR(TIMEDIFF(i.StartTime,'18:30:00'))*60) + MINUTE(TIMEDIFF(i.StartTime,'18:30:00')) AS f_day, 
     (HOUR(TIMEDIFF(i.StartTime,i.EndTime))*60) + MINUTE(TIMEDIFF(i.StartTime,i.EndTime)) AS current, 
     i.StartDate, i.EndDate, i.StartTime, i.EndTime, i.id 
    FROM `request` r 
    INNER JOIN `interval` i ON r.id = i.requestId 
    WHERE r.userId ='xxxx' 

    AND r.eventId = '5' AND r.statusId = '2' 

    ORDER BY i.StartDate ASC 

這是結果:enter image description here

有沒有一種方法,以檢查是否存在10個consecutives平日裏? 以我爲例,結果應該是最後2行 2015-07-28 --- 2015-07-30 => 3天和2015-07-31 --- 2015-08-10 => 7天。所以這是連續10天

+0

你可以作出一個PHP/MySQL的問題。 http://stackoverflow.com/questions/31380670/getting-consecutives-days-in-php – spenibus

回答

0

應該足夠簡單:

SELECT DATEDIFF(EndDate, StartDate)+1 AS consecutive_days; 

回報

EndDate | StartDate | consecutive_days 
2015-07-30 | 2015-07-28 |    3 
2015-08-10 | 2015-07-31 |    11 
+0

好的,但有沒有辦法只在工作日進行計數?所以不是星期日和星期六?多謝! –

+0

我明白了。我沒有從這個問題中得到特定的條件。這確實需要更多思考。 – spenibus

+0

如果對你完全一樣,我會切換到這個問題的PHP版本。它不會比mysql解決方案更復雜。 – spenibus