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

MySQL에서 날짜 데이터를 내림차순(DESC)으로 정렬하는 방법

MySQL에서는 UPDATE 명령어에 ORDER BY 절을 직접 사용할 수 없습니다. 대신 SELECT 문과 함께 ORDER BY DESC를 사용하면 날짜 데이터를 원하는 순서대로 정렬하여 조회할 수 있습니다.

이 글에서는 예제 테이블을 만들고, 날짜(timestamp) 데이터를 내림차순으로 정렬하는 과정을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 날짜 값을 저장할 테이블을 생성합니다.

mysql> create table DemoTable1403
-> (
-> DueDate timestamp
-> );
Query OK, 0 rows affected (1.26 sec)

2. 샘플 데이터 삽입

INSERT 문을 사용해 여러 개의 날짜 레코드를 입력합니다.

mysql> insert into DemoTable1403 values('2019-09-29');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2016-02-21');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2018-01-31');
Query OK, 1 row affected (0.65 sec)
mysql> insert into DemoTable1403 values('2017-12-01');
Query OK, 1 row affected (0.27 sec)

3. 저장된 전체 레코드 조회

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

mysql> select * from DemoTable1403;

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

+---------------------+
| DueDate |
+---------------------+
| 2019-09-29 00:00:00 |
| 2016-02-21 00:00:00 |
| 2018-01-31 00:00:00 |
| 2017-12-01 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

현재는 데이터가 삽입된 순서 그대로 출력되는 것을 볼 수 있습니다.

4. ORDER BY DESC로 날짜 내림차순 정렬

이제 ORDER BY 절과 DESC(내림차순) 옵션을 사용해 최신 날짜부터 오래된 날짜 순으로 정렬해 보겠습니다.

mysql> select * from DemoTable1403 order by DueDate DESC;

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

+---------------------+
| DueDate |
+---------------------+
| 2019-09-29 00:00:00 |
| 2018-01-31 00:00:00 |
| 2017-12-01 00:00:00 |
| 2016-02-21 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

정리

UPDATE 문에는 ORDER BY 절을 사용할 수 없지만, SELECT 문에서 ORDER BY 컬럼명 DESC를 활용하면 날짜 데이터를 손쉽게 내림차순으로 정렬할 수 있습니다. 반대로 오래된 날짜부터 조회하고 싶다면 ASC(오름차순)를 사용하면 됩니다. 이 방식은 게시글 목록, 마감일 관리 등 최신 데이터를 우선적으로 보여줘야 하는 상황에서 특히 유용합니다.