一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Sql Server - sqlserver中如何查詢出連續(xù)日期記錄的代碼

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

2019-12-07 18:09MSSQL教程網(wǎng) Sql Server

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

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

sqlserver中如何查詢出連續(xù)日期記錄的代碼
Insus.NET嘗試寫了程序并做了測試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習之用。 

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

--創(chuàng)建一個臨時表,將會存儲連續(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 --宣告一個變量,存儲累記錄數(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 


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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: japonensis日本护士18 | 成人影院视频 | yy111111免费观看 | 非洲黑女人性xxxx | 天堂久久久久va久久久久 | 娇妻被又大又粗又长又硬好爽 | 波多野结衣一区免费作品 | 996免费视频国产在线播放 | 国产清纯白嫩大学生正在播放 | 国内会所按摩推拿国产 | 天堂网在线.www天堂在线视频 | 国产精品国产香蕉在线观看网 | 色婷婷综合久久久中文字幕 | 久久精品男人影院 | 四色6677最新永久网站 | brazzers欧美教师 | 亚洲黑人巨大videos0 | 天堂va在线高清一区 | 日韩手机在线观看 | 亚洲激情网 | 美女福利视频午夜在线 | 国产成人夜色91 | 日本色女 | yellow视频在线观看 | 双性np肉文 | 欧美一区二区三区免费观看视频 | 欧美成人影院免费观 | 动漫美女人物被黄漫在线看 | 亚洲男1069gay男猛男 | 继攵催眠女乱h调教 | 91亚洲精品国产自在现线 | www.男人| 99国产高清久久久久久网站 | 免费国产一级 | 精品一区二区三区色花堂 | 日本国产最新一区二区三区 | 黑人草| 亚洲网红精品大秀在线观看 | 日本公乱妇视频 | 无遮18禁在线永久免费观看挡 | 欧洲男同直粗无套播放视频 |