의 모든 기록을 얻을 수 있습니다 : 전월에 발생한 날 모든 기록을 얻을 수대부분의 최적의 방법은 내가 항상 사용했던 과거에는 전월
WHERE DATEDIFF(m, [DATE_COL], GETDATE()) = 1
합니다. 예를 들어이 쿼리를 실행하면 1 월에 발생한 모든 레코드를 가져옵니다.
그러나 나는 현재 상당히 큰 테이블을 사용하고 있으며 위 쿼리를 사용하면로드하는 데 약 30 분이 걸립니다. 그러나, 내가 같은 것을 사용하면
WHERE [SettlementDate] >= DateAdd(DAY, -31, GETDATE())
과 같은 것을 사용하면 대개 10 초 이내에 실행됩니다.
내 질문 :
처리 시간이 갑자기 증가하지 않고 WHERE DATEDIFF(m, [DATE_COL], GETDATE()) = 1
과 동일한 결과를 얻으려면 어떻게해야합니까?
감사합니다.
원하는 달'DATEPART (m, [date_col])를'비교하십시오. –
이 'DateAdd (DAY, -31, GETDATE())'도 잘못된 데이터로 평가 될 수 있습니다. 마치'GETDATE()'가 3 월 1 일인 것처럼. –