code

Oracle 타임스탬프 데이터 유형

starcafe 2023. 2. 22. 22:21
반응형

Oracle 타임스탬프 데이터 유형

파라미터가 없는 타임스탬프 데이터 타입과 파라미터0의 차이점은 무엇입니까?

timestamptimestamp(0)

괄호 안의 숫자는 저장할 분수 초의 정밀도를 지정합니다.그렇게,(0)단 1초도 저장하지 말고 정초만 사용하세요.지정되지 않은 경우 기본값은 소수점 구분 기호 뒤의 6자리입니다.

따라서 지정되지 않은 값은 다음과 같은 날짜를 저장합니다.

TIMESTAMP 24-JAN-2012 08.00.05.993847 AM

또, 특정하는 것은(0)스토어만:

TIMESTAMP(0) 24-JAN-2012 08.00.05 AM

데이터 유형에 대한 자세한 내용은 Oracle 설명서를 참조하십시오.

이 숫자는 타임스탬프의 정밀도, 즉 열에 유지되는 1초의 분율입니다.

SQL> create table t23
  2  (ts0 timestamp(0)
  3   , ts3 timestamp(3)
  4  , ts6 timestamp(6)
  5  )
  6  /

Table created.

SQL> insert into t23 values (systimestamp, systimestamp, systimestamp)
  2  /

1 row created.

SQL> select * from t23
  2  /

TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM


SQL> 

정밀도를 지정하지 않으면 타임스탬프는 기본적으로 6자리입니다.

SQL> alter table t23 add ts_def timestamp;

Table altered.

SQL> update t23      
  2  set ts_def = systimestamp
  3  /

1 row updated.

SQL> select * from t23
  2  /

TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
TS_DEF
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM
24-JAN-12 05.59.27.293305 AM


SQL> 

Linux에서 실행 중이기 때문에TIMESTAMP열은 실제로 6개의 장소(마이크로초)에 대한 정밀도를 나타냅니다.이것은 Unix의 대부분의 (모두?) 맛에서도 마찬가지입니다.Windows 에서는, 제한은 3 장소(밀리초)입니다.(이것은 Windows의 가장 현대적인 맛에도 해당됩니까?인용 필요).

예상대로 이 문서에는 이 내용이 기재되어 있습니다.자세한 것은 이쪽.


타임스탬프(9)를 작성하면 나노가 올바르게 표시됩니다.

OS가 지원하는 경우에만.보시다시피 OEL 어플라이언스에서는 다음 기능이 없습니다.

SQL> alter table t23 add ts_nano timestamp(9)
  2  /

Table altered.

SQL> update t23 set ts_nano = systimestamp(9)
  2  /

1 row updated.

SQL> select * from t23
  2  /

TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
TS_DEF
---------------------------------------------------------------------------
TS_NANO
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM
24-JAN-12 05.59.27.293305 AM
24-JAN-12 08.28.03.990557000 AM


SQL> 

(뒤에 오는 0은 우연일 수 있지만 그렇지 않습니다.)

언급URL : https://stackoverflow.com/questions/8987975/oracle-timestamp-data-type

반응형