주어진 날짜 범위와 시간 프레임에 생성 된 행 수를 가져 오는 쿼리를 작성하고 싶습니다. 다른 말로. 날짜 범위는 주어진 월에 대한 것이지만 그 달 동안 매일 특정 시간 (예 : 08:00 - 17:00) 동안 작성된 행만 필요합니다.MS SQL에서 주어진 날짜 범위에 대해 "일일"결과를 어떻게 쿼리합니까?
쉽게 가능합니까?
나는 매일 하위 쿼리를 생각했지만 더 쉬운 방법이 있는지 몰랐다.
주어진 날짜 범위와 시간 프레임에 생성 된 행 수를 가져 오는 쿼리를 작성하고 싶습니다. 다른 말로. 날짜 범위는 주어진 월에 대한 것이지만 그 달 동안 매일 특정 시간 (예 : 08:00 - 17:00) 동안 작성된 행만 필요합니다.MS SQL에서 주어진 날짜 범위에 대해 "일일"결과를 어떻게 쿼리합니까?
쉽게 가능합니까?
나는 매일 하위 쿼리를 생각했지만 더 쉬운 방법이 있는지 몰랐다.
이렇게하면 원하는 것을 얻을 수 있다고 생각합니다. 저장 프로 시저 또는 함수를 만들어서 시작/끝 날짜와 시작/끝 시간 (현재 고정되어 있음)을 전달할 수 있습니다. 종료일보다 엄격하게 작음을 유의하십시오. '8/31/2009 11:59:59'이하도 사용할 수 있습니다.
select count(*),
datepart(year,created) as [year],
datepart(month,created) as [month],
datepart(day,created) as [day]
from table
where created >= '8/1/2009'
and created < '9/1/2009'
and datepart(hour,created) >= 8
and datepart(hour,created) <= 17
group by datepart(year,created), datepart(month,created), datepart(day,created)
관심있는 시간 동안 테스트 할 DATEPART() 함수를 사용하여 예를 들어
:.
select 1,
datepart(hour,getDate())
where datepart(hour,getDate()) >= 8 and datepart(hour,getDate()) < 17
이이 시간의 범위를하는 것처럼 뭔가를 할 수 있습니다 (오후 12시 -1 분) 및 일 (오늘 ~ 10 일 전) :
select * from table where DateColumn < GetDate() and DateColumn > (GetDate() - 11) and DatePart(hh, DateColumn) >= 12 and DatePart(hh, DateColumn) <= 13
왜 이렇게하지 않으십니까?
... WHERE MONTH(TheDateColum) = @Month AND HOUR(TheDateColum) >= 8 AND HOUR(TheDateColumn) <= 17
흠 ... 그들은 저를 때렸습니다.
답장을 보내 주셔서 감사합니다. – jktravis