国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

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

2024-08-31 00:45:29
字體:
來源:轉載
供稿:網友

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

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


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

復制代碼 代碼如下:


--創建一個臨時表,將會存儲連續日期的記錄
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)
DECLARE @sD DATETIME --開始日期
DECLARE @eD DATETIME --結束日期
--在記錄中,找出開始與結束日期
SELECT @sD = MIN([SDATE]), @eD = MAX([SDATE]) FROM [TT]
DECLARE @N INT = 0 --宣告一個變量,存儲累記錄數
--循環日期
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改為一個變量,這樣可以方便以后的程序擴展,某一天需要改為連續2天,4天,5天,或任何一天。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚松县| 昔阳县| 偏关县| 靖州| 托克托县| 宁都县| 东台市| 阿拉善左旗| 三明市| 六枝特区| 龙山县| 定兴县| 崇信县| 汤原县| 漳平市| 蒲江县| 文安县| 仲巴县| 阿坝县| 安阳市| 长岛县| 唐河县| 辉县市| 乌兰县| 遂昌县| 行唐县| 章丘市| 翼城县| 镇巴县| 西丰县| 彭州市| 郑州市| 九龙县| 马尔康县| 独山县| 永德县| 沅江市| 铜陵市| 若尔盖县| 宁陕县| 政和县|