sqlserver中如何查詢出連續(xù)日期記錄的代碼
更新時(shí)間:2011年09月12日 14:48:48 作者:
Insus.NET嘗試寫(xiě)了程序并做了測(cè)試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習(xí)之用。
有在論壇上看到一帖,《請(qǐng)教查詢出連續(xù)日期記錄的方法》,截圖如下:
Insus.NET嘗試寫(xiě)了程序并做了測(cè)試,可以得到預(yù)期的結(jié)果,SQL代碼可參考和學(xué)習(xí)之用。
復(fù)制代碼 代碼如下:
--創(chuàng)建一個(gè)臨時(shí)表,將會(huì)存儲(chǔ)連續(xù)日期的記錄
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)
DECLARE @sD DATETIME --開(kāi)始日期
DECLARE @eD DATETIME --結(jié)束日期
--在記錄中,找出開(kāi)始與結(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天,或任何一天。
您可能感興趣的文章:
- SQL Server 日期函數(shù)CAST 和 CONVERT 以及在業(yè)務(wù)中的使用介紹
- SQLserver中用convert函數(shù)轉(zhuǎn)換日期格式的方法
- SQL Server 日期相關(guān)資料詳細(xì)介紹
- sqlserver獲取當(dāng)前日期的最大時(shí)間值
- sql 查詢本年、本月、本日記錄的語(yǔ)句,附SQL日期函數(shù)
- Sqlserver 常用日期時(shí)間函數(shù)
- 根據(jù)日期知道當(dāng)天是星期幾的手動(dòng)計(jì)算方法
- 按日期選擇最晚日期與最早日期對(duì)應(yīng)的數(shù)的差值
- MSSQL 計(jì)算兩個(gè)日期相差的工作天數(shù)的語(yǔ)句
- SQL Server自動(dòng)生成日期加數(shù)字的序列號(hào)
- SQL 返回期間內(nèi)的所有日期
- 數(shù)據(jù)庫(kù) 日期加減處理
- sql語(yǔ)句中如何將datetime格式的日期轉(zhuǎn)換為yy-mm-dd格式
- 在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼
- SQL Server日期計(jì)算
- SQL Server各種日期計(jì)算方法(收藏)
- SqlServer中的日期與時(shí)間函數(shù)
相關(guān)文章
SQL Server 壓縮日志與減少SQL Server 文件大小的方法
這篇文章主要為大家描述的是實(shí)現(xiàn)SQL Server 壓縮日志與SQL Server 文件大小的實(shí)際操作步驟,在此實(shí)際操作中我們要按步驟一步一步的進(jìn)行,未進(jìn)行前面的步驟時(shí),請(qǐng)不要做后面的步驟,以免損壞你的數(shù)據(jù)庫(kù)2014-07-07分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫(kù)表設(shè)計(jì)
本文和大家分享一下網(wǎng)站站內(nèi)信實(shí)現(xiàn)表設(shè)計(jì)的功能。需要的朋友可以參考下。2010-03-03SQL?Server表空間碎片化回收的實(shí)現(xiàn)
本文主要介紹了SQL?Server表空間碎片化回收的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03SQL 窗口函數(shù)實(shí)現(xiàn)高效分頁(yè)查詢的案例分析
SQL 各部分的邏輯執(zhí)行順序 注意到窗口函數(shù)的求值僅僅位于ORDER BY之前,而位于 SQL 的絕大部分之后。本文重點(diǎn)給大家介紹SQL 窗口函數(shù)實(shí)現(xiàn)高效分頁(yè)查詢功能,通過(guò)案例分析給大家介紹的很詳細(xì),感興趣的朋友跟隨小編一起看看吧2021-05-05