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

MySQL DATETIME에서 초(Seconds) 제거하는 방법

MySQL에서 DATETIME 값의 초(second) 부분을 제거하려면 UPDATE 문과 SET 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

UPDATE 테이블명
SET 날짜컬럼명 = 날짜컬럼명 - SECOND(날짜컬럼명);

DATETIME 컬럼 값에서 해당 값 자체의 초를 빼면 결과적으로 초가 항상 '00'이 되어 시와 분 정보만 남게 됩니다. 실제 동작 과정을 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> CREATE TABLE DemoTable
-> (
-> Shippingdatetime DATETIME
-> );
Query OK, 0 rows affected (0.76 sec)

2. 데이터 삽입

INSERT 명령으로 배송 일시 데이터를 여러 건 추가합니다.

mysql> INSERT INTO DemoTable VALUES('2019-01-21 12:05:20');
Query OK, 1 row affected (0.25 sec)

mysql> INSERT INTO DemoTable VALUES('2019-03-01 10:23:35');
Query OK, 1 row affected (0.19 sec)

mysql> INSERT INTO DemoTable VALUES('2019-06-09 11:00:56');
Query OK, 1 row affected (0.14 sec)

3. 현재 데이터 확인

SELECT 문으로 저장된 모든 레코드를 조회합니다.

mysql> SELECT * FROM DemoTable;

출력 결과

+---------------------+
| Shippingdatetime |
+---------------------+
| 2019-01-21 12:05:20 |
| 2019-03-01 10:23:35 |
| 2019-06-09 11:00:56 |
+---------------------+
3 rows in set (0.00 sec)

현재 각 레코드마다 초 값이 서로 다르게 저장되어 있는 것을 확인할 수 있습니다.

4. 초 제거 쿼리 실행

다음 쿼리를 실행하면 DATETIME 값에서 초 부분이 제거됩니다.

mysql> UPDATE DemoTable
SET Shippingdatetime = Shippingdatetime - SECOND(Shippingdatetime);
Query OK, 3 rows affected (0.15 sec)
Rows matched: 3 Changed: 3 Warnings: 0

5. 변경 결과 확인

테이블의 레코드를 다시 한번 조회해 보겠습니다.

mysql> SELECT * FROM DemoTable;

출력 결과

+---------------------+
| Shippingdatetime |
+---------------------+
| 2019-01-21 12:05:00 |
| 2019-03-01 10:23:00 |
| 2019-06-09 11:00:00 |
+---------------------+
3 rows in set (0.00 sec)

실행 결과를 보면 모든 레코드의 초가 '00'으로 변경되어 시와 분 정보만 깔끔하게 유지되는 것을 확인할 수 있습니다.

참고: 원본을 유지한 채 초만 숨기고 싶다면

테이블의 실제 데이터를 수정하지 않고, 조회 결과에만 초를 제외하고 싶다면 DATE_FORMAT() 함수를 사용하는 것이 좋습니다.

SELECT DATE_FORMAT(Shippingdatetime, '%Y-%m-%d %H:%i') AS ShippingTime
FROM DemoTable;

이 방식은 원본 데이터에는 영향을 주지 않으면서 화면에 표시되는 형식만 조정할 수 있으므로, 상황에 따라 적절한 방법을 선택해 사용하시기 바랍니다.