문자열로 저장된 시간(예: '7:30AM', '11:00PM')에서 가장 최근 시간을 찾으려면 STR_TO_DATE()로 시간 형식으로 변환한 후 내림차순 정렬하고 LIMIT 1로 첫 번째 레코드만 가져옵니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable (
-> DueTime VARCHAR(20)
-> );
Query OK, 0 rows affected (0.87 sec)
mysql> INSERT INTO DemoTable VALUES('7:30AM');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('9:00PM');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES('11:00PM');
Query OK, 1 row affected (0.13 sec)
데이터 조회
mysql> SELECT * FROM DemoTable;
+---------+ | DueTime | +---------+ | 7:30AM | | 9:00PM | | 11:00PM | +---------+ 3 rows in set (0.00 sec)
가장 최근 시간 조회 쿼리
mysql> SELECT * FROM DemoTable
-> ORDER BY STR_TO_DATE(DueTime, '%h:%i%p') DESC
-> LIMIT 1;
+---------+ | DueTime | +---------+ | 11:00PM | +---------+ 1 row in set (0.00 sec)
핵심: STR_TO_DATE(DueTime, '%h:%i%p')는 12시간 형식('7:30AM')을 MySQL이 비교 가능한 TIME/DATETIME 값으로 변환합니다. %h(12시간), %i(분), %p(AM/PM) 형식 지정자를 사용합니다.