날짜/시간 데이터 타입은 날짜, 시간 혹은 이 두 가지를 모두 표현할 때 사용하는 데이터 타입으로, CUBRID는 다음과 같은 데이터 타입을 지원한다.
CUBRID가 지원하는 날짜/시간 데이터 타입
타입 |
최소값 |
최대값 |
비고 |
---|---|---|---|
DATE |
0001년 1월 1일 |
9999년 12월 31일 |
예외적으로 DATE '0000-00-00'을 입력할 수 있다. |
TIME |
00시 00분 00초 |
23시 59분 59초 |
|
TIMESTAMP |
1970년 1월 1일 0시 0분 1초(GMT) |
2038년 1월 19일 3시 14분 7초(GMT) |
예외적으로 TIMESTAMP '0000-00-00 00:00:00'을 입력할 수 있다. |
DATETIME |
0001년 1월 1일 0시 0분 0.000초 |
9999년 12월 31일 23시 59분 59.999초 |
예외적으로 DATETIME '0000-00-00 00:00:00'을 입력할 수 있다. |
범위와 해상도(Range and Resolution)
변환(Coercion)
날짜/시간 데이터 타입의 값은 서로 똑같은 항목을 가지고 있는 경우에만 CAST 연산자를 이용한 명시적인 변환이 가능하며, 묵시적 변환은 묵시적 타입 변환을 참고한다. 아래의 표는 명시적 변환이 가능한 타입을 설명한다. 날짜/시간 데이터 타입 간 산술 연산에 대한 내용은 날짜/시간 데이터 타입의 산술 연산과 타입 변환을 참고한다.
날짜/시간 데이터 타입의 명시적 변환
|
TO |
||||
---|---|---|---|---|---|
FROM |
|
DATE |
TIME |
DATETIME |
TIMESTAMP |
DATE |
- |
X |
O |
O |
|
TIME |
X |
- |
X |
X |
|
DATETIME |
O |
O |
- |
O |
|
TIMESTAMP |
O |
O |
O |
- |
DATE, DATETIME, TIMESTAMP 타입의 연, 월, 일에는 0을 입력할 수 없으나, 예외적으로 날짜와 시간이 모두 0인 값은 허용한다. 해당 타입의 컬럼에 대한 질의 수행 시 인덱스가 있으면 이 값을 사용할 수 있다는 점에서 NULL 대신 사용하면 유용하다.
자세한 사항은 각 함수의 설명을 참고한다.