2013-03-18 3 views
1

날짜가 지정된 일 수를 제외하고 반환 할 결과 필드에 날짜 필드가 있습니다. 예를 들어, where @today-30은 지난 30 일 간의 데이터를 제공합니다. 어떻게해야합니까?T-SQL의 날짜 범위 계산

+0

SQL Server 또는 Sybase? SQL 서버에서 적어도'@ today'가'datetime' 변수라면'SELECT * FROM dbo.SomeTable WHERE DateColumn> = @ today-30'이 실제로 원하는대로 할 수 있습니다. 그러나 어쨌든 당신이 무엇을하려하는지 명확하지 않으므로 질의와 목표에 대해 좀 더 자세히 설명해주십시오. – Pondlife

답변

0

은 당신이 사용할 수있는 범위 : - 당신이 사용할 수있는 빼는 이제

WHERE date_column BETWEEN date1 AND date2 

: -

DATEADD(DAY, -30, '9/1/2011') 

som like : =

WHERE datecolumn BETWEEN dateAdd(day,-30,date1) AND date2 
+0

내가 더 구체적으로 찾고있는 것은 오늘 여러 세트를 뺀 것입니다. 30 일, 오늘 = 30 일, 60 일 = 오늘 = 60 일, 120 일 = 오늘 ... 120 일 ... 등 ... – tsqln00b

+0

그래서 저장 프로 시저를 만들면 입력 매개 변수를 만들 수 있습니다. (30,60,120)이며 다음과 같이 사용할 수 있습니다. - 어디에서 datecolumn BETWEEN dateAdd (day, - @ days, date1) AND date2 희망이 쿼리를 해결합니까? –

0

dateAdd를 사용할 수 있습니다. day의 구문은 당신의 DBMS에 따라 달라질 수 있습니다 날짜를 계산하기 위해

WHERE datecolumn BETWEEN dateAdd(day,-30,getDate()) AND getDate() 

또는

WHERE datecolumn > dateAdd(day,-30,getDate())