看板 Database 關於我們 聯絡資訊
你的過濾條件就是獲取兩個日期差為1天的兩條記錄的時期差. 而后面的數據日期查超過1天,肯定不會有結果. 這類的數據查詢在游標里處置會更加合理,只是逐條獲取數據并和前一條比對日期差即可. ※ 引述《Severine (賽非茵)》之銘言: : DB: MS SQL : 估狗了很久 剛剛也在本版搜尋了一下類似問題 找不太到.. : 只好發文問一下! : 我想要取得每筆紀錄的時間間隔 請問該怎麼做呢? : ========================================================= : 問完以後改寫了一個blueshop的範例 : DECLARE @Temp table (Date datetime, Orders int) : INSERT INTO @Temp VALUES ('2012/2/1',1000) : INSERT INTO @Temp VALUES ('2012/2/2',800) : INSERT INTO @Temp VALUES ('2012/2/3',3500) : INSERT INTO @Temp VALUES ('2012/2/4',4000) : SELECT : T1.Date , : ISNULL(datediff(day,T2.Date ,T1.Date),null) AS daydiff : FROM @Temp AS T1 : LEFT JOIN @Temp AS T2 ON T1.Date = DATEADD(d,1,T2.Date) : ===============以上可以算出後四筆的相差時間============== : 但是以下就不行,想必是對left join用法的理解錯誤 : DECLARE @Temp table (Date datetime, Orders int) : INSERT INTO @Temp VALUES ('2012/2/1',1000) : INSERT INTO @Temp VALUES ('2012/2/12',800) <=修改過 : INSERT INTO @Temp VALUES ('2012/2/13',3500) <= : INSERT INTO @Temp VALUES ('2012/2/24',4000) <= : SELECT : T1.Date , : ISNULL(datediff(day,T2.Date ,T1.Date),null) AS daydiff : FROM @Temp AS T1 : LEFT JOIN @Temp AS T2 ON T1.Date = DATEADD(d,1,T2.Date) : ======================================================== : 請問該如何修改呢? 謝謝 >< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.141.193.166 ※ 文章網址: http://www.ptt.cc/bbs/Database/M.1404964023.A.9DD.html
Severine:已經依照原本那篇底下推文的方法實做出來了 :) 07/12 21:26