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

MySQL에서 SELECT *를 사용해 현재 날짜와 일치하는 레코드 조회하기

MySQL에서 현재 날짜를 기준으로 레코드를 조회하려면 CURDATE() 함수를 사용하면 됩니다. 만약 날짜가 문자열 형태로 저장되어 있다면, STR_TO_DATE() 함수로 해당 값을 날짜 형식으로 변환한 뒤 현재 날짜와 비교할 수 있습니다.

기본 문법

select *from yourTableName where str_to_date(yourColumnName,'yourFormatSpecifier')=curdate();

예를 들어, 현재 날짜가 2019년 10월 27일이라고 가정해 보겠습니다.

1. 테이블 생성

먼저 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> JoiningDate varchar(40)
    -> );
Query OK, 0 rows affected (0.79 sec)

2. 데이터 삽입

insert 명령을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('27/10/2017');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('27/10/2018');
Query OK, 1 row affected (0.78 sec)
mysql> insert into DemoTable values('27/10/2019');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('27/10/2020');
Query OK, 1 row affected (0.11 sec)

3. 전체 레코드 확인

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

mysql> select *from DemoTable;

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

+-------------+
| JoiningDate |
+-------------+
| 27/10/2017  |
| 27/10/2018  |
| 27/10/2019  |
| 27/10/2020  |
+-------------+
4 rows in set (0.00 sec)

4. 현재 날짜와 비교하여 레코드 조회

다음은 STR_TO_DATE() 함수로 날짜 형식을 지정(%d/%m/%Y)한 후 CURDATE()와 비교하여 현재 날짜에 해당하는 레코드를 찾는 쿼리입니다.

mysql> select *from DemoTable where str_to_date(JoiningDate,'%d/%m/%Y')=curdate();

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

+-------------+
| JoiningDate |
+-------------+
| 27/10/2019  |
+-------------+
1 row in set (0.00 sec)

이처럼 문자열로 저장된 날짜라도 STR_TO_DATE() 함수를 활용하면 손쉽게 현재 날짜(CURDATE())와 비교하여 원하는 레코드만 정확하게 조회할 수 있습니다.