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

MySQL SELECT 문에서 날짜 형식을 변경하는 가장 좋은 방법

MySQL의 SELECT 문에서 날짜 형식을 변경하는 가장 효과적인 방법은 DATE_FORMAT() 함수를 사용하는 것입니다. 이 함수는 날짜나 datetime 값을 원하는 형식의 문자열로 변환해 줍니다.

DATE_FORMAT 기본 문법

SELECT DATE_FORMAT(yourColumnName, "%d/%m/%Y %H:%i") AS anyAliasName FROM yourTableName WHERE yourCondition;

예제 테이블 생성

개념을 쉽게 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table bestDateFormatDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > ArrivalDateTime datetime
   - > );
Query OK, 0 rows affected (0.64 sec)

샘플 데이터 삽입

INSERT 명령을 사용하여 테이블에 여러 레코드를 삽입합니다.

mysql> insert into bestDateFormatDemo(ArrivalDateTime) values(now());
Query OK, 1 row affected (0.11 sec)
mysql> insert into bestDateFormatDemo(ArrivalDateTime) values(date_add(now(),interval -2 year));
Query OK, 1 row affected (0.33 sec)
mysql> insert into bestDateFormatDemo(ArrivalDateTime) values('2014-01-31 13:45:56');
Query OK, 1 row affected (0.15 sec)
mysql> insert into bestDateFormatDemo(ArrivalDateTime) values('2016-02-11 12:40:30');
Query OK, 1 row affected (0.17 sec)
mysql> insert into bestDateFormatDemo(ArrivalDateTime) values('2018-12-31 12:59:59');
Query OK, 1 row affected (0.19 sec)

저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from bestDateFormatDemo;

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

+----+---------------------+
| Id | ArrivalDateTime     |
+----+---------------------+
|  1 | 2019-02-22 22:50:10 |
|  2 | 2017-02-22 22:50:28 |
|  3 | 2014-01-31 13:45:56 |
|  4 | 2016-02-11 12:40:30 |
|  5 | 2018-12-31 12:59:59 |
+----+---------------------+
5 rows in set (0.00 sec)

날짜 형식 변경하기

이제 DATE_FORMAT 함수를 사용하여 날짜 형식을 '일/월/년 시:분' 형태로 변경하는 쿼리입니다.

mysql> SELECT DATE_FORMAT(ArrivalDateTime, "%d/%m/%Y %H:%i")AS changeDateFormat FROM bestDateFormatDemo WHERE Id IN(1,2,3,4,5);

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

+------------------+
| changeDateFormat |
+------------------+
| 22/02/2019 22:50 |
| 22/02/2017 22:50 |
| 31/01/2014 13:45 |
| 11/02/2016 12:40 |
| 31/12/2018 12:59 |
+------------------+
5 rows in set (0.28 sec)

12시간 형식으로 표시하기

시간을 24시간 형식이 아닌 12시간 형식으로 표시하고 싶다면, 형식 지정자에서 대문자 '%H' 대신 소문자 '%h'를 사용하면 됩니다.

mysql> SELECT DATE_FORMAT(ArrivalDateTime, "%d/%m/%Y %h:%i")AS changeDateFormat FROM bestDateFormatDemo WHERE Id IN(1,2,3,4,5);

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

+------------------+
| changeDateFormat |
+------------------+
| 22/02/2019 10:50 |
| 22/02/2017 10:50 |
| 31/01/2014 01:45 |
| 11/02/2016 12:40 |
| 31/12/2018 12:59 |
+------------------+
5 rows in set (0.00 sec)

자주 사용되는 DATE_FORMAT 형식 지정자

참고로 DATE_FORMAT 함수에서 자주 쓰이는 주요 형식 지정자는 다음과 같습니다.

  • %Y : 4자리 연도 (예: 2024)
  • %y : 2자리 연도 (예: 24)
  • %m : 2자리 월 (01~12)
  • %d : 2자리 일 (01~31)
  • %H : 24시간 형식의 시간 (00~23)
  • %h : 12시간 형식의 시간 (01~12)
  • %i : 분 (00~59)
  • %s : 초 (00~59)

이처럼 DATE_FORMAT 함수를 활용하면 MySQL에서 날짜와 시간 데이터를 다양한 형식으로 자유롭게 변환하여 출력할 수 있습니다.