2017-11-26 6 views
-1

以下の表から合計日数を調べるにはどうすればよいですか?私はDATEDIFF関数で試してみましたが、私の結果は得られません。SQL Serverの日付の違い

date      days 
------------------------------- 
2017/11/10 
2017/11/12 
2017/11/15 

日の違いは、あなたがLAG(SQL Server 2012の以上)を使用することができ

2017/11/12-2017/11/10, 2017/11/15-2017/11/12. 
+0

使用しているSQL Serverのバージョンは何? –

+0

Sqlサーバー2005 –

答えて

2

のようにする必要があります:SQL Server 2005の

CREATE TABLE t(d DATE); 
INSERT INTO t(d)VALUES ('2017-11-10'), ('2017-11-12'), ('2017-11-15'); 

SELECT *, DATEDIFF(day, LAG(d) OVER(ORDER BY d ASC),d) 
FROM t; 

Rextester Demo

をあなたは使用することができます:

SELECT s.*, DATEDIFF(day, s2.d, s.d) AS days 
FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY d) AS rn FROM t) s 
LEFT JOIN (SELECT *, ROW_NUMBER() OVER(ORDER BY d) AS rn FROM t) s2 
    ON s.rn = s2.rn+1; 

Rextester Demo2