程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sqlserver中若何查詢出持續日期記載的代碼

sqlserver中若何查詢出持續日期記載的代碼

編輯:MSSQL

sqlserver中若何查詢出持續日期記載的代碼。本站提示廣大學習愛好者:(sqlserver中若何查詢出持續日期記載的代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver中若何查詢出持續日期記載的代碼正文


有在服裝論壇t.vhao.net上看到一帖,《就教查詢出持續日期記載的辦法》,截圖以下:


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天,或任何一天。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved