Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

정의와 특성

정의

날짜/시간 데이터 타입은 날짜, 시간 혹은 이 두 가지를 모두 표현할 때 사용하는 데이터 타입으로, CUBRID는 다음과 같은 데이터 타입을 지원한다.

CUBRID가 지원하는 날짜/시간 데이터 타입

타입

bytes

최소값

최대값

비고

DATE

4

0001년 1월 1일

9999년 12월 31일

예외적으로 DATE '0000-00-00'을 입력할 수 있다.

TIME

4

00시 00분 00초

23시 59분 59초

TIMESTAMP

4

1970년 1월 1일 0시 0분 1초(GMT)
1970년 1월 1일 9시 0분 1초(KST)

2038년 1월 19일 3시 14분 7초(GMT)
2038년 1월 19일 12시 14분 7초(KST)

예외적으로 TIMESTAMP '0000-00-00 00:00:00'을 입력할 수 있다.

DATETIME

8

0001년 1월 1일 0시 0분 0.000초

9999년 12월 31일 23시 59분 59.999초

예외적으로 DATETIME '0000-00-00 00:00:00'을 입력할 수 있다.

특성

범위와 해상도(Range and Resolution)

  • 시간 값의 표현은 기본적으로 24시간 시스템에 의하여 그 범위가 결정된다. 날짜는 그레고리력(Gregorian calendar)을 따른다. 이 두 제약점을 벗어나는 값이 날짜나 시간으로 입력되면 오류가 발생한다.
  • DATE 중 연도의 범위는 0001~9999 AD이다.
  • CUBRID 2008 R3.0 버전부터는 연도를 두 자리만 표기하면, 00~69는 2000~2069로 변환되고, 70~99는 1970~1999로 변환된다. R3.0 미만 버전에서는 01~99까지의 두 자리 연도를 표기하면, 각각 0001~0099로 변환된다.
  • TIMESTAMP의 범위는 GMT로 1970년 1월 1일 0시 0분 1초부터 2038년 1월 19일 03시 14분 07초까지이다. KST (GMT+9)로는 1970년 1월 1일 9시 0분 1초부터 2038년 1월 19일 12시 14분 07초까지 저장할 수 있다.
  • 날짜, 시간, 타임스탬프와 관련된 연산은 시스템의 반올림 시스템에 따라 결과가 달라질 수 있다. 이러한 경우, 시간과 타임스탬프는 가장 근접한 초를 최소 해상도로, 날짜는 가장 근접한 날짜를 최소 해상도로 하여 결정된다.

변환(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 대신 사용하면 유용하다.

  • DATE, DATETIME, TIMESTAMP 타입이 인자인 일부 함수는 인자의 날짜와 시간 값이 모두 0이면 시스템 파라미터 return_null_on_function_errors의 값에 따라 다른 값을 반환한다. return_null_on_function_errors가 yes이면 NULL을 반환하고 no이면 에러를 반환하며, 기본값은 no이다.
  • DATE, DATETIME, TIMESTAMP 타입을 반환하는 함수들은 날짜와 시간 값이 모두 0인 값을 반환할 수 있지만 JAVA 응용 프로그램에서는 이러한 값을 Date 객체에 저장할 수 없다. 따라서 연결 URL 문자열의 zeroDateTimeBehavior 속성(Property) 설정에 따라서 예외로 처리하거나 NULL을 반환하거나 또는 최소값을 반환한다("API 레퍼런스 > JDBC API > JDBC 프로그래밍 > 연결 설정" 참고).
  • 시스템 파라미터 intl_date_lang을 설정하면 TO_DATE, TO_DATETIME, TO_TIMESTAMP 함수의 입력 문자열 형식이 해당 로캘의 날짜 형식을 따른다. 자세한 내용은 구문/타입 관련 파라미터를 참고한다.

자세한 사항은 각 함수의 설명을 참고한다.