■ 참고 : The DATE, DATETIME, and TIMESTAMP Types
■ mysql 테이블 생성시 DATE타입으로 컬럼을 생성하고 NOW() 함수로 데이터를 입력하자 데이터 입력은 되나 경고 메세지를 출력하였다. 위의 참고 사이트를 확인하니 DATE타입은 ‘YYYY-MM-DD’형식으로 ‘1000-01-01’부터 ‘9999-12-31’까지만 입력이 된다. DATETIME 데이터 타입은 ‘YYYY-MM-DD HH:MM:SS’형식으로 ‘1000-01-01 00:00:00’부터 ‘9999-12-31 23:59:59’까지 데이터를 입력가능하다. 결론은 NOW() 혹은 SYSDATE()로 현재 날짜와 시간을 읽어와서 데이터를 테이블 컬럼에 입력하고자 할 경우에는 데이터 타입을 DATETIME으로 컬럼을 생성해야 한다.
■ DATE 데이터타입 컬럼 하나와 DATETIME 데이터타입 컬럼 하나를 가지는 ‘T1’이라는 이름의 테이블을 생성한다.
mysql> CREATE TABLE T1 ( -> DT1 DATE, -> DT2 DATETIME -> ); Query OK, 0 rows affected (0.01 sec) mysql>
■ DATE 타입의 DT1 컬럼과 DATETIME 타입의 DT2컬럼에 NOW()함수를 이용하여 현재 날짜(시간)을 입력하였더니 입력은 되는데 1개의 경고 메세지가 발생했다. SHOW WARNING 메세지로 확인하니 DT1 컬럼에 데이터가 입력되면서 데이터가 잘렸고, DT2컬럼에는 초단위 데이터가 입력되었는데 DT1 컬럼에는 일 단위 데이터만 들어가 있다.
mysql> INSERT INTO T1 ( DT1, DT2 ) -> VALUES( NOW(), NOW() ); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS; +-------+------+-------------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------------+ | Note | 1265 | Data truncated for column 'DT1' at row 1 | +-------+------+-------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT * FROM T1; +------------+----------------------------+ | DT1 | DT2 | +------------+----------------------------+ | 2016-03-14 | 2016-03-14 15:03:09 | +------------+----------------------------+ 1 rows in set (0.00 sec)
■ DT1 컬럼의 데이터 타입을 DATE에서 DATETIME으로 변경하고 NOW() 데이터를 입력하니 경고 메세지가 발생하지 않았고 데이터도 초 단위까지 잘 들어간다.
mysql> ALTER TABLE T1 MODIFY DT1 DATETIME; Query OK, 1 row affected (0.03 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> INSERT INTO T1 ( DT1, DT2 ) -> VALUES( NOW(), NOW() ); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM T1; +-------------------------+--------------------------+ | DT1 | DT2 | +-------------------------+--------------------------+ | 2016-03-14 00:00:00 | 2016-03-14 15:03:09 | | 2016-03-14 15:15:11 | 2016-03-14 15:15:11 | +-------------------------+--------------------------+ 2 rows in set (0.00 sec)
- MySQL Error Log 위치 2018년 2월 13일
- mysql 일반사용자 비밀번호 변경 2016년 10월 25일
- 콘솔에서 mysql 서버 접속방법 2016년 10월 25일
- MySQL Index 2016년 5월 25일
- MySQL DDL 2016년 3월 14일
- MySQL Data Type – DATE와 DATETIME 2016년 3월 14일
- MySQL 수학함수 2016년 3월 9일
- MySQL 백업 및 복구 2016년 3월 7일
- MySQL my.ini, my.cnf 위치 2016년 2월 24일
- MySQL root 비밀번호 변경 2016년 2월 23일
- MySQL 원격 접속 사용자 추가 2016년 2월 22일
- MySQL 에러 메세지 2016년 2월 22일
- MySQL 명령어 모음 2016년 2월 22일
- MySQL 테이블 생성 예제 2015년 8월 2일
- MySQL DB생성, 사용자 추가 2015년 8월 2일
- mysql yum install 2015년 8월 2일
- mysql 환경변수(mysql variables) 2015년 7월 16일
- mysql backup script(mysql 백업 스크립트) 2015년 7월 13일
- MySQL Workbench 단축키(shortcuts) 2015년 7월 10일
- mysql 비밀번호 설정 2014년 10월 13일