강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

데이터 정의 및 타입 - 날짜/시간

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

sub_title_icon.gif 데이터 정의 및 타입 - 날짜/시간
1. 날짜/시간 데이터 타입의 정의와 특성
1) 정의
날짜-시간 데이터 타입은 날짜, 시간 혹은 이 두 가지를 모두 표현할 때 사용하는 데이터 타입으로, CUBRID는 다음과 같은 데이터 타입을 지원한다.
icon_sub02.gif DATE
icon_sub02.gif TIME
icon_sub02.gif TIMESTAMP
2) 특성
icon_sub02.gif 범위와 해상도(Range and Resolution)
시간 값의 표현은 기본적으로 24시간 시스템에 의하여 그 범위가 결정된다. 날짜는 그레고리력(Gregorian calendar)을 따른다. 이 두 제약점을 벗어나는 값이 날짜나 시간으로 입력되면 오류가 발생한다.
DATE 중 연도 부분은 0과 9999 AD 사이에 들어야 한다. TIMESTAMP의 경우에는 연도 부분이 더 작은 범위를 갖는데, 구체적으로는 GMT로 1970년 1월 1일 0시0분0초부터 2038년 1월 19일 03시14분07초까지 저장할 수 있다.
날짜, 시간, 타임스탬프와 관련된 연산은 시스템의 반올림 시스템에 따라 결과가 달라질 수 있다. 이러한 경우, 시간과 타임스탬프는 가장 근접한 초를 최소 해상도로, 날짜는 가장 근접한 날짜를 최소 해상도로 하여 결정된다.
icon_sub02.gif 변환(Coercion)
날짜-시간 타입의 값은 서로 똑같은 항목을 가지고 있는 경우에만 서로 비교 가능하다. 결론적으로, 서로 다른 날짜-시간 타입 사이의 자동 변환은 지원되지 않는다. 명시적인 변환은 CAST 연산자를 이용하여 가능한데, 그것도 TIMESTAMP 타입의 값들 간에만 가능하다.
2. DATE
DATE 데이터 타입은 날짜, 월, 연도 등 세 부분으로 이루어진 값이다. DATE 리터럴은 문자 스트링으로 표현하는데, 키워드 DATE 뒤에 다음과 같은 형식으로 작성한다.
DATE 'mm/dd[/yyyy]'
mm은 월, dd는 날짜, 그리고 yyyy는 연도를 나타낸다. 만약, 연도 부분이 생략되면 현재 연도가 자동으로 지정된다.
1) 참고 사항
모든 항목은 정수 형태로 입력되어야 한다.
2) 예제
DATE '11/11/1994'는 '11/11/1994'로 저장된다.
DATE '11/11'는 '11/11/2008'로 저장된다(연도가 생략되면 현재 연도가 자동으로 지정됨).
3. TIME
TIME 데이터 타입은 시각, 분, 초 등 세 부분으로 이루어진 값이다. TIME 리터럴은 문자 스트링으로 표현하는데, 키워드 TIME 뒤에 다음과 같은 형식으로 작성한다.
TIME 'hh:mm [:ss] [am | pm]'
hh는 시간, mm은 분, 그리고 ss는 초를 나타낸다. 만약, 초 부분이 생략되면 자동으로 0초로 지정된다.
시간은 자동으로 군 표준(military standard) 형식으로 변환할 수 있다.
1) 참고 사항
icon_sub02.gif 모든 항목은 정수 형태로 입력되어야 한다.
icon_sub02.gif 시간을 입력할 때에는 AM/PM 혹은 군 표준 형식에 관계 없이 둘 다 사용할 수 있으나, CSQL에 의하여 출력될 때에는 항상 AM/PM 형식을 사용한다. 군 표준 형식으로 입력할 때에도 AM/PM을 사용할 수 있는데, 주어진 시간 값을 AM/PM으로 변환했을 때 실제로 주어진 AM/PM과 일치할 경우에만 허용된다.
icon_sub02.gif 모든 시간 값은 데이터베이스에는 군 표준 형식으로 저장되고, C API 함수인 db_time_decode를 이용하면 군 표준 형식으로 반환된다.
2) 예제
TIME '1:15:45 pm'은 '01:15:45 PM'으로 간주된다.
TIME '16:08:33 am'은 오류이다(주어진 시간 값과 AM/PM이 일치하지 않으므로 오류 발생).
TIME '16:08:33 pm'은 '04:08:33 PM'으로 간주된다.
TIME '1:15'는 '01:15:00 AM'으로 간주된다.
4. TIMESTAMP
TIMESTAMP 데이터 타입은 날짜와 시간을 결합한 데이터 값을 표현한다. TIMESTAMP 구문은 아래와 같이 TIMESTAMP라는 키워드 뒤에 '날짜 시간' 혹은 '시간 날짜'의 문자 스트링로 표현한다.
TIMESTAMP 'hh:mm [:ss] [am|pm] mm/dd [/yyyy]'
TIMESTAMP
'mm/dd [/yyyy] hh:mm [:ss] [am|pm]'
1) 참고 사항
각 항목의 의미는 앞의 DATE, TIME에서 이미 소개한 바와 같은데 한 가지 다른 점은 TIMESTAMP에 허용되는 값의 범위는 GMT로 1970년 1월 1일 0시0분0초부터 2038년 1월 19일 03시14분07초까지라는 점이다.
2) 예제
TIMESTAMP '01/31/1994 8:15:00 pm'은 '8:15:00 PM 01/31/1994'를 나타낸다.
TIMESTAMP '16:08:33 am 1/1/1946'은 오류이다(주어진 시간 값과 AM/PM이 일치하지 않고 허용 가능 범위를 넘어서므로 오류 발생).

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  88 명