2016-06-13 193 views
1

我正在尋找一些關於如何在mySQL中按日期分組時完成日期差異的一些想法。例如,在下面的日期正常則DateDiff(小時)方法將導致49個小時,但我很感興趣,這天有其中共有49營業時間分享:mySQL DateDiff按日期分組

Date 1: 2016-06-12 12:00 
Date 2: 2016-06-14 13:00 

結果:

開始                                                 結束                                                DIFF
2016年6月12日12:00           2016年6月13日00:00     12小時
2016年6月13日00:00           2016年6月14日00:00     24小時
2016年6月14日00 :00             2016-06-14 13:00     13小時

謝謝!

+0

你有一個日曆表,每個日期一行? –

+0

我不知道。但如果需要的話,這是一個容易包含在解決方案中的部分。 –

回答

0

假設你有一個日曆表,並開始和結束日期的變量,那麼像這樣的邏輯應該做你想要什麼:

select c.date, c.date + interval 1 day, 
     timstampdiff(hour, 
        greatest(c.date, $start), 
        least(c.date + interval 1 day, $end) 
        ) 
from calendar c 
where c.date >= date($start) and c.date < date($end) + interval 1 day 
+0

謝謝。我現在就試試看,並讓你知道。 –

+0

我嘗試着解決一些缺陷。即,日期表(其中每個日期從午夜開始)將不適用於...因爲第一個日期從12:00 PM開始。 –

+0

@JasonWasho。 。 。我認爲提取日期部分應該解決這個問題。 –