우리는 요일, 즉 날짜 1에서 7까지 1주, 날짜 8에서 14까지 2주 등을 찾아야 합니다. 요일을 얻으려면 MySQL에서 DAY() 함수를 사용하십시오. CASE 문을 이용하여 요일(숫자)을 구하는 조건을 설정합니다.
이제 예제를 보고 테이블을 생성해 보겠습니다 -
mysql> create table DemoTable ( AdmissionDate date ); Query OK, 0 rows affected (0.63 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable values('2019-09-12'); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values('2019-09-06'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('2019-09-26'); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values('2019-09-30'); Query OK, 1 row affected (0.14 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select *from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+---------------+ | AdmissionDate | +---------------+ | 2019-09-12 | | 2019-09-06 | | 2019-09-26 | | 2019-09-30 | +---------------+ 4 rows in set (0.00 sec)
다음은 해당 월의 요일(숫자)을 구하는 쿼리입니다 -
mysql> select ( CASE WHEN DAY(AdmissionDate) BETWEEN 1 AND 7 THEN 1 WHEN DAY(AdmissionDate) BETWEEN 8 AND 14 THEN 2 WHEN DAY(AdmissionDate) BETWEEN 15 AND 21 THEN 3 WHEN DAY(AdmissionDate) BETWEEN 22 AND 28 THEN 4 else 5 end ) as NthWeekDayOfMonth from DemoTable;
이것은 다음과 같은 출력을 생성합니다 -
+-------------------+ | NthWeekDayOfMonth | +-------------------+ | 2 | | 1 | | 4 | | 5 | +-------------------+ 4 rows in set (0.01 sec)