궁금한 점이 있습니다.
오라클이든 MSSQL이든 상관없는데
20150701 A <-27주차
20150702 B <-27주차
20150705 C <- 28주차
20150714 D <-29주차
주차를 입력받아서 그 주차에 포함되는 날짜의 데이터를 조회하고 싶은데 어떤식으로 해야할지 부탁드려요~
(예) 주차에 28 을 입력하면 C가 나올 수 있도록.
사실 이 문제는 해당 주차의 시작일과 끝일을 알면 되는 문제일텐데요..
문제는 주차.. 라는 개념이 문화나 환경에 따라서 달라질 수 있는 개념이라서
답변을 하기 전에 먼저 드려야 하는 질문들이 아래와 같이 있습니다.
-. 주의 시작은 월요일(ISO 8601)인가요? 일요일(SQL서버 기본값)인가요?
-. 동일한 주가 2개의 주차를 갖을 수 있나요? (ISO 8601은 허용 안함, SQL 서버는 기본적으로 허용함) 예: 2014-12-29부터 2015-01-04까지라는 하나의 기간에 대해 2014년 53주이면서 동시에 2015년 01주인지 2014-12-31도 2015년 01주 인지
--. 위의 질문에 2개의 주차가 된다면 2014년 53주 쿼리시 2015-01-01은 결과의 대상이 되는지 아닌지
-. 28을 입력하면 모든 년도의 28주차에 대해서 다 찾는 건가요? 아니면 쿼리를 날리는 시점을 기준으로 28주차인가요?
위의 내용을 그냥 임의로 제가 대충 이러면 되겠지... 라고 가정하고 만든 쿼리는 다음과 같은 식으로 만들어 지기는 하는데... (쫌 길죠? 일부는 ISO-8601용으로 기존에 사용하고 있던 코드에서 따오고 기존 코드에 없던 일부는 SQL 서버 기준에 맞춰 작성하다보니.. ㅋ)