TIP게시판

제목 MS SQL 최근 몇일전 일자별 합계 쿼리.
글쓴이 들국화 작성시각 2015/08/27 11:00:48
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 13728   RSS
오늘, 어제 날자를 가져오는 쿼리.
DECLARE @yesterday char(10) = convert(varchar(10),dateadd(d,-1,GETDATE()),121)
DECLARE  @tomorrow char(10) = convert(varchar(10),dateadd(d,+1,GETDATE()),121)

오늘부터 5일전 까지의 날짜별 가입자수 쿼리 입니다.
Select DATEPART(yy, [joinDate]) as year, DATEPART(mm, [joinDate]) as month, DATEPART(dd, [joinDate]) as day, count([idx]) cnt
From lMemberInfo
where [joinDate]>= convert(varchar(10),dateadd(d,-5,GETDATE()),121)
group by  DATEPART(yy, [joinDate]),  DATEPART(mm, [joinDate]), DATEPART(dd, [joinDate])
order by DATEPART(yy, [joinDate]) desc,  DATEPART(mm, [joinDate]) desc, DATEPART(dd, [joinDate]) desc

위쿼리가 안맞을것 같아서 수정했습니다.
Select convert(varchar(10),[joinDate],121), count([idx]) cnt
From tblMemberInfo
where [joinDate]>= convert(varchar(10),dateadd(d,-500,GETDATE()),121)
group by  convert(varchar(10),[joinDate],121)
order by convert(varchar(10),[joinDate],121) 
 다음글 IIS 서버 메모리 풀이 계속 일어날때 대처법 (1)
 이전글 CI3.0 한글 메뉴얼 (5)

댓글

한대승(불의회상) / 2015/08/27 13:32:31 / 추천 0
좋은 정보 감사 합니다. ^^
들국화 / 2015/08/27 14:18:00 / 추천 0
한대승// 좋은정보 맞나요?
요즘 MS 제품들을 다루는데.. 매번 MySQL만하다 다른 형태라 다음에 또 찾을것 같아서 적어봤습니다.^^
한대승(불의회상) / 2015/08/27 14:46:34 / 추천 0
좋은 정보 맞습니다.
MSSQL을 안쓰니 이런 정보들이 있으면 이후 작업하기가 수월 하잖아요.
MYSQL을 벗어나고 싶어도 환경이 여의치 않아서.. ^^
이전엔 오라클로만 주구장창 작업 했었는데....
kaido / 2015/08/27 16:29:27 / 추천 0
유독 날짜 관련해서 mssql 이 정말 많은 형태의 정보를 제공 하고 있습니다.

그런데 이 아이는 치명적인 불편함이 있습죠.

바로 그룹바이가 mysql 처럼 사용이 안됌. 망함.
들국화 / 2015/08/27 16:52:59 / 추천 0
kaido// 맞습니다. 그런데 그것도 다 넣어주면 문제가 없는듯 합니다.
그래도 상용이라 MySQL보다는 쿼리가 자유롭네요.

그것보다 하다보니 페이징이 좀 이상하더라구요. 
실행계획은 자세히 보지는 않았지만... rowid 만들어서 하는 형태로 되는것 같네요.
들국화 / 2015/08/28 10:21:48 / 추천 0
위 쿼리가 안맞을수 있을것 같아서 다시 수정 했습니다.
 
Select convert(varchar(10),[joinDate],121), count([idx]) cnt
From tblMemberInfo
where [joinDate]>= convert(varchar(10),dateadd(d,-5,GETDATE()),121)
group by  convert(varchar(10),[joinDate],121)
order by convert(varchar(10),[joinDate],121)