문자열로 저장된 날짜(예: '21/11/2019')를 STR_TO_DATE()로 DATE 타입으로 변환하면 날짜 비교가 가능합니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1808 (
-> AdmissionDate VARCHAR(20)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1808 VALUES('21/11/2019');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1808 VALUES('01/01/2018');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1808 VALUES('26/09/2017');
Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1808;
+---------------+ | AdmissionDate | +---------------+ | 21/11/2019 | | 01/01/2018 | | 26/09/2017 | +---------------+ 3 rows in set (0.00 sec)
2018-12-31 이후 날짜만 조회
mysql> SELECT * FROM DemoTable1808
-> WHERE STR_TO_DATE(AdmissionDate, '%d/%m/%Y') > '2018-12-31';
+---------------+ | AdmissionDate | +---------------+ | 21/11/2019 | +---------------+ 1 row in set (0.00 sec)
형식 지정자: %d(일), %m(월), %Y(4자리 년). %y는 2자리 년도. STR_TO_DATE는 인덱스를 타지 못하므로 대용량이면 날짜 컬럼을 DATE 타입으로 저장하는 것이 좋습니다.