HOWTO · MySQL

MySQL에서 날짜/시간 유형을 날짜로만 변환

이 튜토리얼은 DATE(), CAST(), CONVERT() 및 DATE_FORMAT()을 사용하여 MySQL에서 datetime 유형을 날짜 유형으로 변환하는 방법을 보여줍니다.

이 페이지의 내용

오늘은 MySQL에서 DATETIME 타입을 DATE 타입으로 변환하기 위한 DATE(), CAST(), CONVERT(), DATE_FORMAT() 메소드에 대해 알아보겠습니다. 위에서 언급한 방법을 사용할 수 있으며 MySQL 버전 4.0 이상에서 사용할 수 있습니다.

MySQL에서 DATETIME 유형에서 DATE 유형으로 변환

코드 예제로 이해하기 위해 id, productName, orderNumber 및 orderDateTime을 속성으로 사용하여 orders 테이블을 생성해 보겠습니다. 또한 id 필드를 사용하여 기본 키를 생성합니다. 다음 쿼리를 참조하십시오.

예제 코드:

CREATE TABLE orders(
    id INT NOT NULL,
    productName VARCHAR(50) NOT NULL,
    orderNumber INT NOT NULL,
    orderDateTime DATETIME NOT NULL,
    PRIMARY KEY(id)
);

INSERT INTO orders (id, productName, orderNumber, orderDateTime)
VALUES
(1, 'Oppo F17', 3322, '2022-04-11 04:32:15'),
(2, 'DELL Laptop', 5433, '2022-05-12 12:23:09'),
(3, 'HP Mouse', 3489, '2022-05-16 07:23:16');

SELECT * FROM orders;

출력:

+----+-------------+-------------+---------------------+
| id | productName | orderNumber | orderDateTime       |
+----+-------------+-------------+---------------------+
|  1 | Oppo F17    |        3322 | 2022-04-11 04:32:15 |
|  2 | DELL Laptop |        5433 | 2022-05-12 12:23:09 |
|  3 | HP Mouse    |        3489 | 2022-05-16 07:23:16 |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)

테이블이 준비되면 이제 다음 방법 중 하나를 사용하여 프로젝트 요구 사항에 따라 목표를 충족할 수 있습니다.

DATE()를 사용하여 MySQL에서 DATETIME을 DATE로 변환

예제 코드:

 SELECT id, productName, orderNumber, DATE(orderDateTime) FROM orders;

출력:

+----+-------------+-------------+---------------------+
| id | productName | orderNumber | DATE(orderDateTime) |
+----+-------------+-------------+---------------------+
|  1 | Oppo F17    |        3322 | 2022-04-11          |
|  2 | DELL Laptop |        5433 | 2022-05-12          |
|  3 | HP Mouse    |        3489 | 2022-05-16          |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)

DATE() 함수는 유효한 DATE 또는 DATETIME 유형 필드에서 DATE 부분을 가져올 수 있습니다. 유효하지 않은 표현식이 전달되면 NULL을 반환합니다.

DATE에 따라서만 데이터를 그룹화하려는 경우 이 기사를 사용할 수 있습니다.

CAST()를 사용하여 MySQL에서 DATETIME을 DATE로 변환

예제 코드:

SELECT id, productName, orderNumber, CAST(orderDateTime AS DATE) FROM orders;

출력:

+----+-------------+-------------+-----------------------------+
| id | productName | orderNumber | CAST(orderDateTime AS DATE) |
+----+-------------+-------------+-----------------------------+
|  1 | Oppo F17    |        3322 | 2022-04-11                  |
|  2 | DELL Laptop |        5433 | 2022-05-12                  |
|  3 | HP Mouse    |        3489 | 2022-05-16                  |
+----+-------------+-------------+-----------------------------+
3 rows in set (0.00 sec)

CAST() 메소드는 한 데이터 유형의 값을 다른 주어진 데이터 유형으로 캐스트(변환)하는 데 사용됩니다.

CONVERT()를 사용하여 MySQL에서 DATETIME을 DATE로 변환

예제 코드:

SELECT id, productName, orderNumber, CONVERT(orderDateTime, DATE) FROM orders;

출력:

+----+-------------+-------------+------------------------------+
| id | productName | orderNumber | CONVERT(orderDateTime, DATE) |
+----+-------------+-------------+------------------------------+
|  1 | Oppo F17    |        3322 | 2022-04-11                   |
|  2 | DELL Laptop |        5433 | 2022-05-12                   |
|  3 | HP Mouse    |        3489 | 2022-05-16                   |
+----+-------------+-------------+------------------------------+
3 rows in set (0.00 sec)

CONVERT() 메서드를 사용하여 DATETIME 유형 필드를 DATE로만 변환할 수도 있습니다. 두 개의 인수를 허용합니다. 첫 번째는 변환해야 하는 값이고 두 번째는 주어진 값이 변환될 데이터 유형입니다.

DATE_FORMAT()을 사용하여 MySQL에서 DATETIME을 DATE로 변환

예제 코드:

SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%Y-%m-%d') FROM orders;

출력:

+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%Y-%m-%d') |
+----+-------------+-------------+----------------------------------------+
|  1 | Oppo F17    |        3322 | 2022-04-11                             |
|  2 | DELL Laptop |        5433 | 2022-05-12                             |
|  3 | HP Mouse    |        3489 | 2022-05-16                             |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)

DATE_FORMAT() 함수는 DATETIME을 DATE 유형으로 변환하며 현재 날짜 형식을 변경하는 데 유용합니다. 예를 들어 DATE를 d/m/Y 형식으로 표시하려면 다음과 같이 할 수 있습니다.

예제 코드:

SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%d/%m/%Y') FROM orders;

출력:

+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%d/%m/%Y') |
+----+-------------+-------------+----------------------------------------+
|  1 | Oppo F17    |        3322 | 11/04/2022                             |
|  2 | DELL Laptop |        5433 | 12/05/2022                             |
|  3 | HP Mouse    |        3489 | 16/05/2022                             |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)

월 번호 대신 월 이름을 보려면 DATE_FORMAT() 함수를 사용하여 다음 형식으로 변환할 수도 있습니다.

예제 코드:

SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%D %M %Y') FROM orders;

출력:

+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%D %M %Y') |
+----+-------------+-------------+----------------------------------------+
|  1 | Oppo F17    |        3322 | 11th April 2022                        |
|  2 | DELL Laptop |        5433 | 12th May 2022                          |
|  3 | HP Mouse    |        3489 | 16th May 2022                          |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)