DATETIME 필드가 두 개 있고 OpeningDate 및 FinishingDate 테이블이 있습니다.SQL은 다른 날짜보다 18 개월 전에 모든 레코드를 반환합니다. (월말까지)
정확히 16 개월 전에 FindingDate가있는 모든 레코드를 반환하는 쿼리를 작성하려고합니다.
SELECT * FROM Sales
WHERE FinishingDate = DATEADD(MONTH, 16, OpeningDate)
를하지만 나에게, 나는 그것이 마지막까지 모든 레코드를 얻을 필요가 (단지 달에서 일까지) 그 날짜 사이에 속하는 모든 기록을 제공하기 위해 나타납니다
나는 시도 .
그러므로 2017-10-06 (년, 월, 일)의 OpeningDate가 있고 18 개월 후에 2019-04-06이됩니다. 여기에는 4 월 6 일까지의 기록 만 포함되며 4 월 말까지 기록을 포함시켜야합니다.
이를 달성하기 위해 어떤 쿼리를 수정할 수 있습니까?
도움이 될 것입니다.
감사합니다. 당신이 코드를 사용할 수 있습니다
데이터와 함께 테이블 구조를 표시하면 좋을 것입니다. –
EOMONTH를 사용하여 OpeningDate를 월말로 변환하십시오. SELECT * FROM Sales OpeningDate와 DATEADD 사이의 FinishingDate (MONTH, 16, EOMONTH (OpeningDate)) – EagerToLearn