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

MySQL에서 개별 열의 날짜와 시간을 하나의 DATETIME 열로 합치는 방법

MySQL에서 DATE 타입의 열과 TIME 타입의 열에 각각 저장된 값을 하나의 DATETIME 열로 합치려면 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 문자열을 하나로 연결해 주기 때문에, 날짜와 시간 사이에 공백만 넣어주면 손쉽게 datetime 형식의 값을 만들 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> ShippingDate date,
-> ShippingTime time,
-> ShippingDatetime datetime
-> );
Query OK, 0 rows affected (0.50 sec)

샘플 데이터 삽입

INSERT 명령을 사용하여 배송 날짜와 배송 시간을 각각의 열에 입력합니다.

mysql> insert into DemoTable(ShippingDate,ShippingTime) values('2019-01-10', '10:40:20');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable(ShippingDate,ShippingTime) values('2019-06-14', '04:00:10');
Query OK, 1 row affected (0.14 sec)

SELECT 문으로 테이블의 전체 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+--------------+--------------+------------------+
| ShippingDate | ShippingTime | ShippingDatetime |
+--------------+--------------+------------------+
| 2019-01-10 | 10:40:20 | NULL |
| 2019-06-14 | 04:00:10 | NULL |
+--------------+--------------+------------------+
2 rows in set (0.00 sec)

아직 ShippingDatetime 열에는 값이 입력되지 않아 NULL로 표시되는 것을 확인할 수 있습니다.

날짜와 시간을 하나의 열로 연결하기

이제 CONCAT() 함수를 사용하여 개별 열에 저장된 날짜와 시간을 하나의 열로 합치는 쿼리를 실행합니다. 날짜와 시간 사이에는 공백 문자(' ')를 넣어주어야 올바른 datetime 형식이 됩니다.

mysql> update DemoTable set ShippingDatetime=concat(ShippingDate,' ',ShippingTime);
Query OK, 2 rows affected (0.11 sec)
Rows matched: 2 Changed: 2 Warnings: 0

업데이트가 완료되었으니 테이블의 레코드를 다시 한번 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+--------------+--------------+---------------------+
| ShippingDate | ShippingTime | ShippingDatetime |
+--------------+--------------+---------------------+
| 2019-01-10 | 10:40:20 | 2019-01-10 10:40:20 |
| 2019-06-14 | 04:00:10 | 2019-06-14 04:00:10 |
+--------------+--------------+---------------------+
2 rows in set (0.00 sec)

위 결과를 보면 ShippingDateShippingTime 열의 값이 성공적으로 결합되어 ShippingDatetime 열에 'YYYY-MM-DD HH:MM:SS' 형식으로 저장된 것을 확인할 수 있습니다.

참고 사항

대량의 데이터를 처리할 때는 CONCAT() 대신 TIMESTAMP(date_col, time_col) 함수를 사용하는 것도 좋은 방법입니다. 이 함수는 날짜와 시간을 직접 datetime 값으로 변환해 주므로 더 안전하고 명확하게 동작합니다.