본문 바로가기
Database/MySQL

MySQL DATE / TIME TYPE

by oncerun 2020. 5. 9.
반응형

MySQL은 날짜와 시간에 관한 다양한 형태의 타입을 제공합니다.

 

  • DATE, DATETIME, TIMESTAMP

  •  TIME

  •  YEAR

DATE 

 

DATE는 날짜를 저장할 수 있는 타입입니다.

기본 형식은 YYYY-MM-DD이며 저장할 수 있는 날짜의 범위는 1000-01-01부터 9999-12-31까지입니다.

 

DATETIME

 

DATETIME은 날짜와 함께 시간까지 저장할 수 있는 타입입니다.

기본형식은 YYYY-MM-DD HH:mm:SS 이며 저장할 수 있는 범위는 1000-01-01 00:00:00부터

9999-12-31 23:59:59까지입니다.

 

TIMESTAMP

 

TIMESTAMP는 날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입입니다.

TIMESTAMP 타입의 필드는 사용자가 별다른 입력을 주지 않으면 데이터가 마지막으로 입력되거나 변경된 시간이 저장됩니다. 따라서 데이터의 변경 시각을 저장하고 확인하는데 유용합니다.

 

저장할 수 있는 범위는 1970-01-01 00:00:01 UTC부터 2038-01-19 03:14:07 UTC까지 입니다.

 

입력받은 데이터가 유효한 날짜와 시간이 아니라면 세 가지 타입 모두 0을 저장합니다.

 

TIME

 

TIME은 시간을 저장할 수 있는 타입입니다.

기본형식은 HH:MM:SS 이거나 HHH:MM:SS입니다. 

저장 범위는 -838:59:59부터 838:59:59입니다.

 

범위를 초과하거나 유효하지 않은 시간은 00:00:00으로 저장됩니다.

 

YEAR

 

YEAR는 연도를 저장할 수 있는 타입입니다.

YEAR(2)는 2자리의 연도를 저장하며 YEAR(4)는 4자리의 연도를 저장할 수 있습니다.

 

YEAR는 연도를 나타내는 숫자와 문자열을 모두 저장할 수 있으나 저장되는 결과가 다릅니다.

 

1. 4자리 숫자로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년까지가 됩니다.

2. 4자리 문자열로 저장하면, 저장할 수 있는 범위는 1901년부터 2155년까지가 됩니다.

3. 1자리 또는 2자리 숫자로 저장하면, 1부터 69까지는 2001년부터 2069년까지가 되고, 70부터 99까지는 1970년부터 1999년까지가 됩니다.

4. 1자리 또는 2자리 문자열로 저장하면, '0'부터 '69'까지는 2000년부터 2069년까지가 되고, '70'부터 '99'까지는 1970년부터 1999년까지가 됩니다.

5. 숫자 0을 저장하면, 2000년이 아닌 0000년으로 저장되므로, 2000년은 반드시 문자열 '0' 또는 '00'으로 입력해야 합니다.

 

이때 유효하지 않은 연도는 '0000'으로 저장됩니다.

 

* YEAR(2)는 MySQL 5.7.5. 버전부터는 지원하지 않으므로, 연도를 저장할 때는 YEAR(4)를 사용하는 것이 좋습니다.

반응형

'Database > MySQL' 카테고리의 다른 글

[MySQL] 트리거  (0) 2020.07.01
[MySQL] 커서  (0) 2020.07.01
[MySQL] Stored Program  (0) 2020.07.01
MySQL String Type  (0) 2020.05.09
MySQL Numeric Type  (0) 2020.05.08

댓글