2013-01-23 135 views
1

我正在尋找一種方法來獲取兩個時間戳的TIMEDIFF,這些時間戳是通過MySQL中涉及的日期分組的。TIMEDIFF GROUP BY涉及日期

SELECT TIMEDIFF('2012-01-02 10:00:00', '2012-01-01 10:00:00'); 

這只是給出24小時的差異。

我需要兩個(或更多)天的差異。即:

2012-01-01: 14:00:00 
2012-01-02: 10:00:00 
[...] 

有沒有辦法在TIMEDIFF函數中分組?

+0

澄清:你想通過日期時間的列表,並獲得每個之間的差異一個(即1和2,2和3等)? – pzirkind

+0

不,我只有兩個時間戳timestamp1(2012-01-01 ...)和timestamp2(2012-01-09 ...)。結果應該是1月1日至9日的日期以及比例小時/分鐘/秒。 – Thomas1703

+2

啊,請在問題中發佈所需的輸出,以便我們可以更好地爲您提供幫助 – pzirkind

回答

1

爲了做到你想要的,你需要生成一個數字序列。也許你有一張桌子。如果沒有,像下面這樣:

select dstart + interval n.num days 
from (select d1*10+d2 as num 
     from (select 0 as d union all select 1 union all select 2 union all 
      select 3 union all select 4 union all select 5 union all select 6 union all 
      select 7 union all select 8 union all select 9 
      ) d1 cross join 
      (select 0 as d union all select 1 union all select 2 union all 
      select 3 union all select 4 union all select 5 union all select 6 union all 
      select 7 union all select 8 union all select 9 
      ) d2 
    ) n join 
     (select date('2012-01-02') as dend, date('2012-01-01') dstart 
     on dstart + interval n.num days <= dend 

(這不是測試,所以它可能有語法錯誤。)