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 일 또는 그 어떠한 날 로 바 꿔 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
링크 ux 셸 프로 세 스 감시 스 크 립 트이 스 크 립 트 는 TARGET 이 가리 키 는 프로그램 을 감시 하 는 데 사 용 됩 니 다. 프로그램 이 실행 되 지 않 으 면 시작 스 크 립 트 run. sh 를 실행 합 니 다.또한 프로 세 스 의 cpu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.