2014-11-15 3 views
0

과거 "X"일 동안 추가되거나 수정 된 테이블의 레코드 만 선택하려고합니다. 5 일을 말합니다.지난 "X"일 동안 작성되거나 수정 된 레코드를 찾는 가장 좋은 방법은 무엇입니까?

계정 테이블에는 CreateWhen 및 UpdateWhen 두 개의 열이 있습니다.

Select * from Accounts where CreateDate >= getdate() -5 or UpdateWhen >= getdate() -5 

는이 요청을 처리 할 수있는 가장 효율적인 방법입니다 :

나는 다음을 사용하고? 작동하는 것 같습니다.

+0

SQL 무엇? MySQL은? SQL Server? 다른 데이터베이스 엔진? 태그 중 하나를 포함하도록 태그를 업데이트해야합니다. – MarcinJuraszek

+0

미안하지만, 지정하지 않았습니다. 예, MS SQL 2008입니다. – MISNole

+0

OK. 질문에 태그를 업데이트했습니다 (MS SQL은 Sql Server 임). – MarcinJuraszek

답변

1

사용중인 데이터베이스 엔진을 말하지 않았습니다.

SELECT * 
FROM Accounts 
WHERE DATEADD(d, 5, CreateDate) >= GETDATE() 
OR DATEADD(d, 5, UpdateWhen) >= GETDATE() 

그것은 당신이 DateTime 값을 다른 시간 간격을 추가 할 수 있습니다 DATEADD 함수를 사용하여 여기에 SQL Server와 함께 작동합니다 솔루션입니다. 이 예에서는 5 일을 추가합니다 (첫 번째 매개 변수는 d입니다). GETDATE()에 일 -5 추가하고 직접 UpdateWhenCreateDate 비교 :

당신은 그것을 다른 방법으로 할 수

CreateDate >= DATEADD(d, -5, GETDATE()) 

가 더 읽기 쉽고 이해하기 쉽게 생각 하나를 선택하십시오.

+0

죄송합니다. MS SQL을 사용하고 있습니다. – MISNole

+0

굉장합니다. 내 대답은 거기서 작동합니다 (MS SQL은 SQL Server입니다). – MarcinJuraszek

관련 문제