정의와 특성
정의
날짜-시간 데이터 타입은 날짜, 시간 혹은 이 두 가지를 모두 표현할 때 사용하는 데이터 타입으로, CUBRID는 다음과 같은 데이터 타입을 지원한다.
- DATE
- TIME
- TIMESTAMP
- DATETIME
특성
- 범위와 해상도(Range and Resolution)
- 시간 값의 표현은 기본적으로 24시간 시스템에 의하여 그 범위가 결정된다. 날짜는 그레고리력(Gregorian calendar)을 따른다. 이 두 제약점을 벗어나는 값이 날짜나 시간으로 입력되면 오류가 발생한다.
- DATE 중 연도의 범위는 0 ~ 9999 AD이다.
- TIMESTAMP의 범위는 GMT로 1970년 1월 1일 0시 0분 0초부터 2038년 1월 19일 03시 14분 07초까지이다. KST (GMT+9)로는 1970년 1월 1일 9시 0분 0초부터 2038년 1월 19일 12시 14분 07초까지 저장할 수 있다.
- 날짜, 시간, 타임스탬프와 관련된 연산은 시스템의 반올림 시스템에 따라 결과가 달라질 수 있다. 이러한 경우, 시간과 타임스탬프는 가장 근접한 초를 최소 해상도로, 날짜는 가장 근접한 날짜를 최소 해상도로 하여 결정된다.
- 변환(Coercion)
- 날짜-시간 타입의 값은 서로 똑같은 항목을 가지고 있는 경우에만 서로 비교 가능하다. 결론적으로, 서로 다른 날짜-시간 타입 사이의 자동 변환은 지원되지 않고, CAST 연산자를 이용한 명시적인 변환만 가능하다.
- DATETIME 타입은 TIMESTAMP 타입, DATE 타입, TIME 타입으로 변환될 수 있다. 단, 변환 결과에서 뒷 부분 혹은 앞 부분이 잘릴 수 있다.
- TIMESTAMP 타입은 DATE 타입, DATETIME 타입, TIME 타입으로 변환될 수 있다. 단, 변환 결과에서 뒷 부분 혹은 앞 부분이 잘릴 수 있다.
- DATE 타입은 DATETIME 타입 및 TIMESTAMP 타입으로 변환될 수 있다.
- TIME 타입은 DATETIME 타입 및 TIMESTAMP 타입으로 변환될 수 없으며, 역방향으로의 변환은 가능하다.