কম্পিউটার টিউটোরিয়াল

MySQL에서 날짜 문자열을 요일 기준 월요일로 맞춰 표시하기 (STR_TO_DATE, WEEKDAY, DATE_FORMAT)

문자열 날짜를 파싱해 해당 주의 월요일 날짜를 요일 일 월 형식으로 출력하는 복합 쿼리입니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1820 (AdmissionDate VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1820 VALUES('20/10/2019');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1820 VALUES('19/12/2018');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1820 VALUES('16/04/2017');
Query OK, 1 row affected (0.00 sec)

데이터 조회

mysql> SELECT * FROM DemoTable1820;
+---------------+
| AdmissionDate |
+---------------+
| 20/10/2019    |
| 19/12/2018    |
| 16/04/2017    |
+---------------+
3 rows in set (0.00 sec)

해당 주의 월요일 날짜 구하기

mysql> SELECT DATE_FORMAT(
    ->     SUBDATE(
    ->         STR_TO_DATE(AdmissionDate, '%d/%m/%y'),
    ->         WEEKDAY(STR_TO_DATE(AdmissionDate, '%d/%m/%y'))
    ->     ),
    ->     '%a %d %b'
    -> ) FROM DemoTable1820;
+-------------------------------------------------------------------------------------------------------------------------+
| DATE_FORMAT(SUBDATE(STR_TO_DATE(AdmissionDate,'%d/%m/%y'), WEEKDAY(STR_TO_DATE(AdmissionDate,'%d/%m/%y'))), '%a %d %b') |
+-------------------------------------------------------------------------------------------------------------------------+
| Mon 19 Oct                                                             |
| Mon 14 Dec                                                             |
| Mon 13 Apr                                                             |
+-------------------------------------------------------------------------------------------------------------------------+
3 rows in set, 6 warnings (0.00 sec)

단계별 해설:

  1. STR_TO_DATE(AdmissionDate, '%d/%m/%y'): 문자열 → DATE ('2019-10-20' 등). %y는 2자리 년도(2019→19). 4자리면 %Y.
  2. WEEKDAY(date): 월요일=0 ~ 일요일=6 반환.
  3. SUBDATE(date, WEEKDAY(...)): 날짜에서 요일 수만큼 빼서 월요일로 맞춤.
  4. DATE_FORMAT(..., '%a %d %b'): 'Mon 19 Oct' 형식 출력.

경고: 2자리 년도(%y) 사용 시 1970~2069 해석 규칙 적용돼 경고 발생. %Y 권장.

  1. MySQL-এ DATE_FORMAT দিয়ে তারিখ কলাম থেকে মাসের নাম এবং বছর দেখানো

  2. MySQL-এ কারেন্ট ডেটের দিন ও মাস দিয়ে ডেট রেকর্ড ফিল্টার করা

  3. MySQL-এ একক ফিল্ড দ্বারা অর্ডার করে বাকি রেকর্ডগুলো একই ক্রমে দেখানো

  4. MySQL에서 날짜 레코드로부터 월의 첫날과 마지막 날 구하기