2013-10-02 2 views
53

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

+2

['TIMESTAMP'] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#SQLRF00203)는 분 초 초 정밀도가 추가 된 것을 제외하고는 'DATE'와 동일합니다. . – NullUserException

+4

가장 큰 차이점은 'DATE'는 초 단위로 정확하고 소수 초는 없음을 나타냅니다. 'TIMESTAMP'는 분 초가 있습니다. 초 단위의 소수 자릿수는 서버 OS에 따라 달라집니다. 예를 들어, Windows 7 시스템의 Oracle은 타임 스탬프의 소수점 세 자리를 반환하지만 클라이언트의 거대한 Solaris 상자는 6을 반환합니다. 시간 소인은 특정 시간대를 유지하거나 공통 시간대로 표준화 할 수 있습니다. [여기] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm)를 방문하여 " TIMESTAMP "에 대한 자세한 내용은 다음을 조금 시도하십시오. –

답변

58

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

TIMESTAMP는 ANSI와 호환되는 Oracle에 추가되었습니다. 그 전에는 DATE 만있었습니다.

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

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

+0

경고 단어 : 불행히도 기본적으로 Oracle의 DATE 열을 쿼리하면"day "만 반환되지만, TO_TIMESTAMP (DATE_COLUMN_NAME) 그러면 정밀도가 더 높아집니다. 어떤 식 으로든 jdbc/hibernate의 기본값은 아니지만 적어도 여기에는 없습니다. – rogerdpack

+2

"일반적으로 DATE를 사용해야합니다."- 정확히 왜? – siledh

+0

안녕하세요 @siledh, 나는 당신이 응용 프로그램에 대한 추가 정보 (시간대) 중요한 경우에만 TIMESTAMP 사용해야한다고 생각합니다. 내 비즈니스 논리에 달렸어. 예를 들어, 다른 플랫폼에 배포 된 응용 프로그램과 데이터를 공유해야하는 경우 TIMEZONE을 선택해야하며 시간 정보는 그 사이에 명확하게 이해되어야합니다. –

관련 문제