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

MySQL에서 DATE 타입을 DATETIME(날짜/시간)으로 변경하는 방법

MySQL에서 DATE를 DATETIME으로 변경하는 방법

MySQL에서 컬럼의 데이터 유형을 DATE(날짜)에서 DATETIME(날짜/시간)으로 변경하려면 ALTER 명령어와 CHANGE 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

alter table 테이블이름 change 컬럼이름 컬럼이름 datetime;

CHANGE 절은 '기존 컬럼명 → 새 컬럼명 → 새 데이터 유형' 순서로 지정하기 때문에 컬럼 이름이 두 번 등장합니다. 컬럼 이름을 그대로 유지하고 싶다면 같은 이름을 두 번 입력하면 됩니다.

1단계: 테이블 생성

먼저 예제로 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    LoginDate date
    );
Query OK, 0 rows affected (1.26 sec)

2단계: 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(LoginDate) values('2019-01-21');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable(LoginDate) values('2018-05-01');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(LoginDate) values('2017-12-31');
Query OK, 1 row affected (0.12 sec)

3단계: 저장된 데이터 확인

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

mysql> select *from DemoTable;

출력 결과

+----+------------+
| Id | LoginDate  |
+----+------------+
| 1  | 2019-01-21 |
| 2  | 2018-05-01 |
| 3  | 2017-12-31 |
+----+------------+
3 rows in set (0.66 sec)

4단계: 데이터 유형 변경

다음 쿼리를 실행하면 LoginDate 컬럼의 유형이 date에서 datetime으로 변경됩니다.

mysql> alter table DemoTable change LoginDate LoginDate datetime;
Query OK, 3 rows affected (1.63 sec)
Records : 3 Duplicates : 0 Warnings : 0

5단계: 변경 결과 확인

DESC 명령어로 테이블 구조를 확인해 보겠습니다.

mysql> desc DemoTable;

출력 결과

+-----------+----------+------+-----+---------+----------------+
| Field     | Type     | Null | Key | Default | Extra          |
+-----------+----------+------+-----+---------+----------------+
| Id        | int(11)  | NO   | PRI | NULL    | auto_increment |
| LoginDate | datetime | YES  |     | NULL    |                |
+-----------+----------+------+-----+---------+----------------+
2 rows in set (0.19 sec)

출력 결과에서 LoginDate 컬럼의 Type이 datetime으로 변경된 것을 확인할 수 있습니다. 참고로, 기존에 저장된 날짜 값에는 시간 정보가 없었기 때문에 변경 후에는 자동으로 00:00:00이 붙게 됩니다. 앞으로 해당 컬럼에는 날짜와 함께 시간까지 저장할 수 있습니다.