最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sqlserver中如何查詢出連續(xù)日期記錄的代碼

 更新時(shí)間:2011年09月12日 14:48:48   作者:  
Insus.NET嘗試寫了程序并做了測試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習(xí)之用。

有在論壇上看到一帖,《請(qǐng)教查詢出連續(xù)日期記錄的方法》,截圖如下:


Insus.NET嘗試寫了程序并做了測試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習(xí)之用。

復(fù)制代碼 代碼如下:

--創(chuàng)建一個(gè)臨時(shí)表,將會(huì)存儲(chǔ)連續(xù)日期的記錄
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)
DECLARE @sD DATETIME --開始日期
DECLARE @eD DATETIME --結(jié)束日期
--在記錄中,找出開始與結(jié)束日期
SELECT @sD = MIN([SDATE]), @eD = MAX([SDATE]) FROM [TT]
DECLARE @N INT = 0 --宣告一個(gè)變量,存儲(chǔ)累記錄數(shù)
--循環(huán)日期
WHILE (@sD <= @eD)
BEGIN
--如果存在
IF EXISTS (SELECT TOP 1 1 FROM [TT] WHERE [SDATE] = @sD)
BEGIN
SET @sD = DATEADD(day,1,@sD) --日期加1天
SET @N = @N + 1 --記錄加1
END
ELSE --如果不存在
BEGIN
IF (@N >= 3) --判斷是否大于或等于3
INSERT INTO #temp SELECT [IDD],[SDATE] FROM [TT] WHERE [SDATE] BETWEEN DATEADD(day,-@N,@sD) AND @sD
--日期加1天
SET @sD = DATEADD(day,1,@sD)
SET @N = 0 --初始化為0
END
END
--列出符合條件的記錄
SELECT * FROM #temp

上面的方法,實(shí)際可以把IF (@N >= 3)這句中的3改為一個(gè)變量,這樣可以方便以后的程序擴(kuò)展,某一天需要改為連續(xù)2天,4天,5天,或任何一天。

相關(guān)文章

最新評(píng)論

巴马| 龙山县| 克什克腾旗| 卢氏县| 隆昌县| 聂荣县| 永清县| 罗甸县| 石首市| 抚顺县| 北票市| 腾冲县| 阿拉尔市| 临清市| 仪陇县| 宁晋县| 临城县| 古浪县| 遵化市| 普兰店市| 乡宁县| 岗巴县| 高雄县| 策勒县| 龙门县| 汝南县| 始兴县| 扎兰屯市| 连江县| 洛扎县| 云和县| 衡水市| 昌吉市| 佛冈县| 清远市| 榆树市| 理塘县| 和静县| 黑水县| 衡水市| 桂东县|