2012-06-22 5 views
0

내가이 쿼리는 일요일에 너무 토요일에 발생 요소를 포함 할이는 두 조건을 포함

 SELECT * from myTable WHERE Date BETWEEN @Sunday AND @Saturday 

과 같은 쿼리가 있습니다. 나는 단지 값을 Between @Saturday AND @Sunday으로 변경할 수 있다는 것을 알고 있지만, 날짜 계산 알고리즘을 변경하고 싶지는 않지만 두 날짜를 모두 포함하는 방법이 있다고 가정 해 봅시다.

답변

3

날짜/시간 범위 쿼리에는 BETWEEN을 절대로 사용하지 마십시오. 59 : 당신이 23 토요일 일요일 자정에서 일어난 것을 원하는 경우 59.9999999을, 어떤 날짜/시간 데이터 형식을 사용하여 가장 안전한 방법은 다음과 같습니다

:

DECLARE @Sunday DATE = '20120617'; 

... 
WHERE [Date] >= @Sunday AND [Date] < DATEADD(DAY, 7, @Sunday); 

이 두 기사를 읽기를주십시오 http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx

http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx

+0

NIice 내가 많이이 방법에게 감사처럼! – phadaphunk

+0

감사합니다. – phadaphunk

+0

나는 좋은 사람도 내 질문에 답하는 것처럼 보입니다. 나는 내 프로젝트를 계속하기 전에 아픈 기사를 몇 권 더 읽었다 고 생각한다. – phadaphunk

관련 문제