Oracle DATE와 TIMESTAMP의 차이점


92

Oracle DATE와 TIMESTAMP 유형의 차이점은 무엇입니까? 둘 다 날짜 및 시간 구성 요소가 있습니까? 또한 이러한 날짜 유형에 대한 Java의 해당 유형은 무엇입니까?


3
TIMESTAMPDATE분수 초 정밀도를 추가 한 점을 제외 하면과 동일 합니다.
NullUserException

5
가장 큰 차이점 DATE은 초 단위까지 정확하고 소수 초가 없습니다. TIMESTAMP소수 초가 있습니다. 초 단위의 소수 자릿수는 서버 OS에 따라 다릅니다. 예를 들어 Windows 7 시스템의 Oracle은 타임 스탬프에 대해 소수 세 자리를 반환하는 반면 클라이언트의 거대한 Solaris 상자는 6을 반환합니다. 타임 스탬프는 특정 시간대를 포함하거나 일반 시간대로 정규화 될 수도 있습니다. 여기 로 이동 하여 "TIMESTAMP"를 검색하여 자세한 정보를 확인한 다음 약간 실험 해보십시오. :)
Ed Gibbs

답변:


97

DATE 및 TIMESTAMP의 크기는 동일합니다 (7 바이트). 이러한 바이트는 세기, 10 년, 년, 월, 일,시, 분 및 초를 저장하는 데 사용됩니다. 그러나 TIMESTAMP를 사용하면 분수 초 (11 바이트) 및 시간대가있는 분수 초 (13 바이트)와 같은 추가 정보를 저장할 수 있습니다.

TIMESTAMP는 Oracle에 ANSI 규격으로 추가되었습니다. 그 전에는 DATE 만있었습니다.

일반적으로 DATE를 사용해야합니다. 그러나 시간의 정밀도가 요구되는 경우 TIMESTAMP를 사용하십시오.

그리고 Java에 대해 Oracle JDBC 드라이버의 oracle.sql.DATE 클래스는 Oracle Date / Timestamp 데이터 유형과 Java 클래스 java.sql.Date, java.sql.Time 및 java.sql.Timestamp 간의 변환을 제공합니다.


1
경고 : 안타깝게도 Oracle에서 DATE 열을 쿼리 할 때 기본적으로 "일"만 반환하는 것처럼 보이지만 TO_TIMESTAMP (DATE_COLUMN_NAME)처럼 캐스트하면 더 많은 정밀도를 반환합니다. 어쨌든 jdbc / hibernate의 기본값은 아니지만 적어도 여기에는 없습니다.
rogerdpack 2013

6
"일반적인 경우에는 DATE를 사용해야합니다."하지만 정확히 그 이유는 무엇입니까?
siledh

4
당신은 사용해야합니다 TIMESTAMP WITH TIME ZONE. 그렇지 않으면 일광 절약 시간이 모호한 시간을 도입합니다.
kmkaplan

15
DATE 유형에 TIME 정보가 포함되어 있다는 것이 정말 혼란 스럽습니다. 그것은 그 단어가 의미하는 바가 아닙니다.
Daddy32

3
@ Daddy32 TIMESTAMP는 약 20 년 후에 추가되었습니다 DATE. 그들은 정말로 돌아가서 바꿀 수 없었습니다 DATE.
윌리엄 로버트슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.