프로그래밍 노트

MySQL의 date, time, date_time, time_stamp의 입력형식 본문

데이터베이스/MySQL

MySQL의 date, time, date_time, time_stamp의 입력형식

띠리 2007. 5. 15. 16:27
데이터베이스의 날짜를 입력할때 간간히 헤깔리는 경우가 있다.
"1998-12-31"으로 입력해야되는지
"1999/12/31"으로 입력해야되는지
"19991231"으로 입력해야되는지가...

MySQL의 date, time, date_time, time_stamp의 입력형식

우선 MySQL에서 아무 데이터베이스나 선택해서 밑에 테이블은 만든다.

CREATE TABLE InputTest (date date, time time, date_time datetime, time_stamp timestamp);

아래와 같은 형식으로 데이터를 입력하면 문제없이 데이터가 입력된다.

INSERT INTO InputTest VALUES
("1998-12-31", "23:59:59", "1998-12-31 23:59:59",19981231235959);

date_time이나 time_stamp는 두가지 입력방식이있다.
 ① yyyy-mm-dd hh:mm:ss
 ② yyyymmddhhmmss

INSERT INTO InputTest VALUES
("1998-12-31", "23:59:59", 19981231235959,"1998-12-31 23:59:59");

밑의 예제와 같이 입력을하면 에러가 뜬다.

INSERT INTO InputTest VALUES
("1999/12/31", "13:59:59", "1998/11/31 21:59:59",19991231235959);

ERROR 1136 (21S01): Column count doesn't match value count at row 1

문제없이 입력된 데이터를 보면 아래와 같다.

mysql> select * from inputtest;
+------------+----------+---------------------+---------------------+
| date       | time     | date_time           | time_stamp          |
+------------+----------+---------------------+---------------------+
| 1998-12-31 | 23:59:59 | 1998-12-31 23:59:59 | 1998-12-31 23:59:59 |
+------------+----------+---------------------+---------------------+
1 row in set (0.00 sec)

만들어진 테이블의 정보를 보면 아래와 같다

mysql> desc inputtest;
+------------+-----------+------+-----+-------------------+-------+
| Field      | Type      | Null | Key | Default           | Extra |
+------------+-----------+------+-----+-------------------+-------+
| date       | date      | YES  |     | NULL              |       |
| time       | time      | YES  |     | NULL              |       |
| date_time  | datetime  | YES  |     | NULL              |       |
| time_stamp | timestamp | NO   |     | CURRENT_TIMESTAMP |       |
+------------+-----------+------+-----+-------------------+-------+

위의 표를 보면 timestamp는 디폴트 값이 있다.
timestamp의 값은 입력을 하지 않으면 자동으로 현재 일시를 입력해준다.
(그래서 시간 도장이란 이름이였군)

Comments