본문 바로가기

IT/DB

[MySQL SQL] 해당 날짜의 요일 출력

[MySQL] 해당 날짜의 요일을 함께 SELECT 하기   웹프로그래밍 작업

1. 요일 출력 함수: DAYOFWEEK
일요일(0) ~ 토요일(6)까지, 숫자로 출력

mysql> SELECT DAYOFWEEK('2012-09-20');
+-------------------------+
| DAYOFWEEK('2012-09-20') |
+-------------------------+
|                       5 |
+-------------------------+
1 row in set (0.00 sec)

2. 문자열 자르기 함수: SUBSTR
'일월화수목금토' 라는 문자열에서 해당 요일의 한 글자를 가져 옴.

 mysql> SELECT SUBSTR(_UTF8'일월화수목금토', DAYOFWEEK('2012-09-20'), 1);
+------------------------------------------------------------------+
| SUBSTR(_UTF8'일월화수목금토', DAYOFWEEK('2012-09-20'), 1) |
+------------------------------------------------------------------+
| 목                                                              |
+------------------------------------------------------------------+
1 row in set (0.00 sec)
※ 여기에서 주의할 점은, '한글요일'와 같은 '2바이트 문자'일 경우, _UTF8 을 빼면 글자가 깨짐. 해당 인코딩 옵션(_EUCKR 등)을 지정해 주어야 함.


3. 실제 적용

mysql> SELECT
    ->  dt
    -> ,SUBSTR( _UTF8'일월화수목금토', DAYOFWEEK( dt ), 1 ) AS wk_han
    -> FROM
    -> my_table
    -> ORDER BY
    -> dt ASC;
+------------+--------+
| dt         | wk_han |
+------------+--------+
| 2012-09-01 | 토    |
| 2012-09-03 | 월    |
| 2012-09-04 | 화    |
| 2012-09-05 | 수    |
| 2012-09-06 | 목    |
| 2012-09-07 | 금    |
| 2012-09-08 | 토    |
| 2012-09-10 | 월    |
| 2012-09-11 | 화    |
| 2012-09-12 | 수    |
| 2012-09-13 | 목    |
| 2012-09-14 | 금    |
| 2012-09-15 | 토    |
| 2012-09-17 | 월    |
| 2012-09-18 | 화    |
| 2012-09-19 | 수    |
| 2012-09-20 | 목    |
+------------+--------+
17 rows in set (0.00 sec)