db2에는 시간과 관련하여 date, time, timestamp 타입을 지원합니다.
물론 varchar와 호환되는 것은 사실이나, 이러한 타입을 사용하면 잇점이 있습니다.
date는 yyyymmdd 의 형식으로 표현되나, 실재로는 4바이트로 저장됩니다.
time은 hhmmss의 형식으로 표현되나, 실재로는 3바이트로 저장됩니다.
timestamp는 yyyymmddhhmmssnnnnnn의 형식으로 표현되나, 실재로는 10바이트로 저장됩니다.
이에 따라 실재 디스크와, 메모리의 사용을 줄이고 처리 속도를 향상시킬 수 있습니다.
게다가, 다음과 같은 수식을 사용하실 수 있습니다.
time - time = time 기간
date - date = date 기간
timestamp - timestamp = timestamp 기간
해당 컬럼을 빼므로써 기간 값을 얻을 수 있습니다.
또한,
time +- 기간 = time
date +- 기간 = date
tiemstamp +- 기간 = timestamp 가 가능하기 때문에 이 또한 편리하게 사용할 수 있습니다.
결론적으로, varchar를 사용하실 수는 있지만, 위의 장점을 살릴 수 있기 때문에 저 같으면 해당 시간 타입을 사용하겠습니다.
-- 궁금이 님이 쓰신 글:
>> 일반적으로 실무에서는 timestamp나 date 타입같은 제공되는 타입을 쓰지않고 varchar를 쓴다고 들었는데
>> 그게 사실이라면 왜 그렇게 하는건지
>> 설명 좀 해주세요.
>> 어떤테이블이든 작성일정도는 필드로 있을거라생각되는데
>> 테이블짤때 이건 중요하다고 생각되서 이렇게 문의합니다.
>> DB2같은경우..오라클처럼 데이트타입을 어떤포멧으로 부르는 쿼리는 제공되지 않는것같지만..(제가 몰라서 그런다면 쿼리도 가르쳐주세요)
>> 데이타입력시를 생각할때 데이타 타입의 사용이 더 편할거같은데.....
>>
>> 부족한 실력에 이렇게 문의드립니다.
>> 답변부탁드려요
|