Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL datetime 열에서 날짜만 비교하고 공백을 무시하며 추출하는 방법

MySQL에서 datetime 열로부터 날짜를 추출할 때는 date() 함수와 함께 trim() 함수를 사용할 수 있습니다. 특히 저장된 값에 불필요한 공백이 포함되어 있을 경우, trim()을 활용하면 공백을 제거한 상태로 정확하게 비교할 수 있습니다.

예제 테이블 생성

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable661(Duedate datetime);
Query OK, 0 rows affected (0.57 sec)

다음으로 insert 명령어를 사용해 몇 개의 레코드를 삽입합니다. 이때 일부 값에는 앞뒤 공백이 포함되어 있다는 점에 주목하세요.

mysql> insert into DemoTable661 values(' 2019-01-21 12:02:21');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable661 values(' 2019-07-11 11:55:59 ');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable661 values('2019-11-21 04:00:59 ');
Query OK, 1 row affected (0.10 sec)

저장된 데이터 확인

select 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable661;

위 쿼리는 다음과 같은 결과를 출력합니다.

+---------------------+
| Duedate             |
+---------------------+
| 2019-01-21 12:02:21 |
| 2019-07-11 11:55:59 |
| 2019-11-21 04:00:59 |
+---------------------+
3 rows in set (0.00 sec)

날짜 추출 및 비교 쿼리

이제 datetime 열에서 특정 날짜를 기준으로 데이터를 추출하는 쿼리를 살펴보겠습니다. 아래 쿼리는 date() 함수로 시간 정보를 제외한 날짜 부분만 가져오고, trim() 함수로 공백을 제거한 뒤 원하는 날짜와 비교합니다.

mysql> select *from DemoTable661 where trim(date(Duedate))='2019-07-11';

실행 결과는 다음과 같습니다.

+---------------------+
| Duedate             |
+---------------------+
| 2019-07-11 11:55:59 |
+---------------------+
1 row in set (0.00 sec)

결과를 보면 '2019-07-11' 날짜에 해당하는 레코드 하나만 정확히 반환된 것을 확인할 수 있습니다. 이처럼 date()trim()을 조합하면 datetime 값에 공백이 포함되어 있더라도 날짜 기준으로 안정적으로 데이터를 조회할 수 있습니다.