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

MySQL DATE 타입 컬럼에 날짜와 시간을 함께 저장하면 어떻게 될까?

MySQL의 DATE 데이터 타입 기본 형식은 'YYYY-MM-DD'입니다. 이 형식에는 시간 값을 저장할 공간이 없지만, 만약 DATE 타입으로 선언된 컬럼에 날짜와 시간 값을 함께 저장하면 MySQL은 경고(warning)를 표시하고 해당 컬럼에는 오직 날짜 값만 저장합니다. 아래 예제를 통해 이를 직접 확인해 보겠습니다.

예제

mysql> Create table date_time_test(date DATE);
Query OK, 0 rows affected (0.44 sec)

mysql> Insert into date_time_test(date) values('2017-09-09 09:34:21');
Query OK, 1 row affected, 1 warning (0.03 sec)

mysql> Select * from date_time_test;
+------------+
| date       |
+------------+
| 2017-09-09 |
+------------+
1 row in set (0.00 sec)

위 예제에서 볼 수 있듯이, INSERT 문에 '2017-09-09 09:34:21'처럼 날짜와 시간을 함께 지정했음에도 불구하고 MySQL은 시간 부분을 무시하고 '2017-09-09'라는 날짜 값만 테이블에 저장했습니다. 이때 쿼리 결과에 '1 warning'이 표시된 것처럼, 잘린 데이터가 있다는 경고가 함께 반환됩니다.

날짜와 시간을 모두 저장하려면?

날짜뿐 아니라 시간 정보까지 함께 저장해야 하는 경우에는 DATE 대신 DATETIME(형식: 'YYYY-MM-DD HH:MM:SS') 또는 TIMESTAMP 데이터 타입을 사용하는 것이 올바른 방법입니다. 이 두 타입은 날짜와 시간을 모두 정확하게 저장할 수 있습니다.