mysql 격주 단위로 요일 가져오기
본문
제목이 곧 내용입니다.
예를 들어
9월의 월요일을 구하는데 격주 단위로 구하고 싶다 하면
9/3, 9/17이 되고
그 다음 10월을 구할 때 월요일은 10/1, 10/15, 10/29
그 다음 11월을 구할 때 월요일은 11/12, 11/26 을 구하는
그런 쿼리는 어떻게 짜야 할까요?
답변 3
해당달의 첫날 몇요일 몇일인지 구하고
해당달의 마지막날이 몇요일 몇일인지 구하고
첫날구한 날이 몇요일인지 구했으니 월요일에 대한 날짜를 구해주고
이렇게 구한 달의 첫번째 월요일에서 14씩을 더하면 격주가 구해지고
14를 더했을때 달의 마지막 날보다 커졌는지 계산하고
커졌으면 다시 처음부터 반복
월요일만 구해서 숫자를 부여 하고 (row_num)
짝수 혹은 홀수만 구하면 되지 않을까요?
특정월의 첫번째날의 요일을 가져오는 함수
1. date에는 특정년월일을 넣습니다.
SELECT DAYOFWEEK(date);
이함수의 리턴 1은 일요일 2는월요일.....
자세한건 라이브러리 참조
2. 해당일자가 월요일이 아니면..
1이면 +1일때 월요일 즉, 시작일 +1 일은 월요일 그다음 월요일은 +14일
2이면 0일때 월요일 즉, 시작일 월요일, 그다음은 +14일
2보다크면 2가 구현될 수식을 만들어 날짜를 추가한다.
2주뒤는 위의 방식과 마찬가지
답변을 작성하시기 전에 로그인 해주세요.