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

MySQL에서 여러 타임스탬프 값 중 가장 최근 날짜를 조회하는 방법

MySQL에서 여러 개의 타임스탬프 값 중 가장 최근 날짜를 조회하려면 ORDER BY 절을 활용하면 됩니다. 타임스탬프 컬럼을 기준으로 내림차순(DESC) 정렬한 후 첫 번째 행만 가져오는 방식입니다.

기본 문법

SELECT yourColumnName1,yourColumnName2,...N FROM yourTableName ORDER BY yourTimestampColumnName DESC LIMIT 1;

예제 테이블 생성

위 문법을 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다.

mysql> create table MostRecentDateDemo
    - > (
    - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    - > Name varchar(10),
    - > ShippingDate timestamp
    - > );
Query OK, 0 rows affected (0.65 sec)

샘플 데이터 삽입

INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 삽입합니다.

mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('Larry',date_add(now(),interval -1 month));
Query OK, 1 row affected (0.19 sec)
mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('Mike','2018-09-12 19:34:45');
Query OK, 1 row affected (0.43 sec)
mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('Sam','2017-11-24 14:30:40');
Query OK, 1 row affected (0.19 sec)
mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('Carol','2019-02-12 11:30:41');
Query OK, 1 row affected (0.56 sec)
mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('David',now());
Query OK, 1 row affected (0.22 sec)
mysql> insert into MostRecentDateDemo(Name,ShippingDate) values('John','2018-12-31 12:59:58');
Query OK, 1 row affected (0.15 sec)

전체 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from MostRecentDateDemo;

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

+----+-------+---------------------+
| Id | Name  | ShippingDate        |
+----+-------+---------------------+
|  1 | Larry | 2019-01-14 17:17:08 |
|  2 | Mike  | 2018-09-12 19:34:45 |
|  3 | Sam   | 2017-11-24 14:30:40 |
|  4 | Carol | 2019-02-12 11:30:41 |
|  5 | David | 2019-02-14 17:19:34 |
|  6 | John  | 2018-12-31 12:59:58 |
+----+-------+---------------------+
6 rows in set (0.00 sec)

가장 최근 날짜 조회 쿼리

다음은 ShippingDate 컬럼을 기준으로 가장 최근 날짜를 조회하는 쿼리입니다.

mysql> select Id,Name,ShippingDate from MostRecentDateDemo order by ShippingDate desc limit 1;

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

+----+-------+---------------------+
| Id | Name  | ShippingDate        |
+----+-------+---------------------+
|  5 | David | 2019-02-14 17:19:34 |
+----+-------+---------------------+
1 row in set (0.00 sec)

결과를 보면 ShippingDate를 내림차순으로 정렬했을 때 가장 앞에 오는 David의 레코드(2019-02-14 17:19:34)가 반환된 것을 확인할 수 있습니다. 이처럼 ORDER BY ... DESCLIMIT 1을 조합하면 여러 타임스탬프 값 중 최신 날짜를 손쉽게 조회할 수 있습니다.