본문 바로가기

db/oracle

오라클 to_timestamp 형변환

반응형

오라클에서 to_timestamp 함수를 사용한 날짜 및 시간 변환

세 가지 to_timestamp 함수 비교
-- 현재 시간을 밀리초까지 표현
SELECT to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') FROM dual;

-- 현재 시간을 마이크로초까지 표현
SELECT to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS.FF9') FROM dual;

-- 현재 시간을 초 단위까지 표현
SELECT to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS') FROM dual;


1. to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS.FF3')

  • 기능 : 현재 시스템 시간(SYSDATE)을 "년-월-일 T시:분:초. 밀리초(3자리)" 형식의 TIMESTAMP 데이터 타입으로 변환합니다.
  • "T" : ISO 8601 표준에서 날짜와 시간을 구분하는 데 사용되는 문자입니다.
  • "FF3" : 소수점 아래 3자리까지의 밀리초를 나타냅니다. 즉, 1/1000초 단위의 정밀도를 가지는 시간 값으로 변환됩니다.

2. to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS.FF9')

  • 기능 : 1번과 동일하게 현재 시스템 시간을 TIMESTAMP로 변환하지만, "FF9"를 사용하여 소수점 아래 9자리까지의 마이크로초를 나타냅니다.
  • "FF9" : 1/1,000,000초 단위의 정밀도를 가지는 시간 값으로 변환됩니다. 즉, 1번보다 더욱 정밀한 시간 정보를 얻을 수 있습니다.

3. to_timestamp(sysdate, 'YYYY-MM-DD"T"HH24:MI:SS')

  • 기능 : 1번과 2번과 마찬가지로 현재 시스템 시간을 TIMESTAMP로 변환하지만, 소수점 이하를 생략하여 초 단위까지만 표현합니다.
  • "FF" 부분 생략 : 밀리초나 마이크로초를 나타내는 부분이 없으므로, 초 단위까지의 정밀도만 가지는 시간 값으로 변환됩니다.
각 함수의 사용 시 고려 사항
  • 정밀도 : 필요한 시간의 정밀도에 따라 적절한 함수를 선택해야 합니다. 밀리 초까지의 정밀도가 필요하면 1번, 마이크로초까지 필요하면 2번, 초 단위만 필요하면 3번을 사용하면 됩니다.
  • 시간대 : Oracle 데이터베이스의 시간대 설정에 따라 결과 값이 달라질 수 있습니다.
  • 데이터베이스 버전 : 사용하는 Oracle 데이터베이스 버전에 따라 지원되는 형식이 다를 수 있습니다.

※ to_timestamp 함수를 사용하여 SYSDATE를 TIMESTAMP 데이터 타입으로 변환할 때, 두 번째 인수인 포맷 마스크를 통해 원하는 정밀도와 형식으로 시간 값을 얻을 수 있습니다. 어떤 함수를 사용할지는 데이터를 처리하는 목적과 요구되는 정밀도에 따라 결정하면 됩니다.

 

 

반응형

'db > oracle' 카테고리의 다른 글

Oracle DECODE 함수  (0) 2025.01.21
sysdate timestamp 형 변환  (1) 2025.01.20
Tomcat 9.0.98 미만 버전 보안 취약점  (0) 2025.01.19
oracle 프로시저 예외 처리  (0) 2025.01.19
oracle mssql truncate table 비교  (0) 2025.01.18