"Real MySQL" 책을 정리한 포스팅 입니다.
날짜와 시간
- 날짜, 시간만 저장하거나 날짜와 시간 같이 저장할 수 있습니다.
설명 | 크기 | |
YEAR | 날짜(YYYY) | 1 byte |
DATE | 날짜(YYYY-MM-DD) | 3 byte |
TIME | 시간(HH:MM:SS.MS) | 3 ~ 5 byte |
TIMESTAMP | 날짜 + 시간 | 4 ~ 7 byte |
DATETIME | 날짜 + 시간 | 5 ~ 8 byte |
밀리초단위 저장공간
- 2자리당 1바이트씩 공간이 필요합니다.
- 최대 6자리까지 표현할 수 있습니다.
- 타입의 괄호에 몇 바이트를 사용할지 정할 수 있습니다.
타임존
날짜 타입
- 타임존 정보가 포함되지 않음
- 클라이언트로부터 입력된 값을 그대로 저장하고 조회합니다.
시간 타입
- 타임존 정보가 포함됨 (UTC TimeZone)
- TIMESTAMP: 설정된 타임존 기준으로 저장 및 조회를 할 수 있습니다.
- DATETIME: 타임존이 변경되었다 하더라도 타임존 변환처리가 되지 않습니다.
JDBC Driver
- 시간 타입 상관 없이 타임존 변환처리를 수행합니다.
- ResultSet 클래스에서 DATETIME 컬럼의 값을 가져오는 함수가 getTimestamp()이기 때문입니다.
시스템 변수
- time_zone : 클라이언트 커넥션의 기본 타임존. 값이 SYSTEM일 경우 system_time_zone 값을 사용한다.
- system_time_zone : 서버의 타임존. 운영체제의 타임존을 그대로 상속받는다. time_zone의 디폴트 값 역할
자동 업데이트
- DATETIME, TIMESTAMP 관련없이 사용이 가능합니다.
- DEFAULT : insert될 때의 시점을 자동으로 업데이트
- ON UPDATE : update될 때의 시점을 자동으로 업데이트
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 8-3. 인덱스: 유일성 (0) | 2024.09.07 |
---|---|
[Real MySQL] 5-2. 트랜잭션과 잠금 (0) | 2024.08.10 |
[Real MySQL] 15-2. 데이터 타입: 숫자 (0) | 2023.11.26 |
[Real MySQL] 15-1. 데이터 타입: 문자열 (0) | 2023.11.26 |
[Real MySQL] 8-2. 인덱스: 구현 (B-Tree) (0) | 2023.11.25 |