MySQL에서 타임스탬프(timestamp) 값을 오름차순으로 정렬하려면 ORDER BY ASC 절을 사용하면 됩니다. TIMESTAMP() 함수를 별도로 호출할 필요 없이, 해당 컬럼을 기준으로 정렬 조건을 지정하는 것만으로 간단히 해결할 수 있습니다.
기본 문법
TIMESTAMP() 함수를 사용하지 않고 타임스탬프 값을 오름차순으로 정렬하는 기본 문법은 다음과 같습니다.
SELECT yourTimestampColumnName FROM yourTableName ORDER BY yourTimestampColumnName ASC;
참고로 MySQL에서는 ASC가 기본 정렬 방식이므로, 명시적으로 작성하지 않아도 결과는 동일합니다. 다만 코드의 가독성을 위해 명시해 주는 것이 좋습니다.
예제 테이블 생성
문법을 실제로 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table Timestamp_TableDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> yourTimestamp timestamp -> ); Query OK, 0 rows affected (0.83 sec)
위 쿼리는 자동 증가되는 기본키 Id와 타임스탬프 타입의 yourTimestamp 컬럼으로 구성된 테이블을 생성합니다.
데이터 삽입
이제 INSERT 문을 사용해 몇 개의 레코드를 테이블에 삽입해 보겠습니다.
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:34:57');
Query OK, 1 row affected (0.14 sec)
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:32:30');
Query OK, 1 row affected (0.25 sec)
mysql> insert into Timestamp_TableDemo(yourTimestamp) values('2019-02-06 17:32:09');
Query OK, 1 row affected (0.14 sec)저장된 데이터 확인
SELECT 문을 사용해 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select *from Timestamp_TableDemo;
실행 결과는 다음과 같습니다. 현재 데이터는 삽입된 순서대로 저장되어 있어 시간 순서와 일치하지 않습니다.
+----+---------------------+ | Id | yourTimestamp | +----+---------------------+ | 1 | 2019-02-06 17:34:57 | | 2 | 2019-02-06 17:32:30 | | 3 | 2019-02-06 17:32:09 | +----+---------------------+ 3 rows in set (0.00 sec)
오름차순 정렬 쿼리 실행
이제 ORDER BY ASC 절을 사용해 타임스탬프 값을 오름차순(과거 → 최근)으로 정렬해 보겠습니다.
mysql> select yourTimestamp from Timestamp_TableDemo -> order by yourTimestamp ASC;
실행 결과는 다음과 같습니다.
+---------------------+ | yourTimestamp | +---------------------+ | 2019-02-06 17:32:09 | | 2019-02-06 17:32:30 | | 2019-02-06 17:34:57 | +---------------------+ 3 rows in set (0.00 sec)
정리
위 출력 결과를 보면 타임스탬프 값이 가장 빠른 시간부터 가장 늦은 시간 순서대로, 즉 오름차순으로 정렬된 것을 확인할 수 있습니다. 이처럼 TIMESTAMP() 함수 없이도 ORDER BY 컬럼명 ASC만으로 타임스탬프 컬럼을 손쉽게 정렬할 수 있습니다. 반대로 최신 데이터를 먼저 조회하고 싶다면 DESC(내림차순)를 사용하면 됩니다.