SYSDATE

시스템의 현재 날짜와 시간을 반환한다

결과는 'YY/MM/DD HH24:MI:SS'로 표시한다

 

SYSTIMESTAMP

시스템의 현재 날짜와 시간,분,초,밀리초를 등을 반환한다.

결과는 'YY/MM/DD HH24:MI:SS.FF TZR TZD'로 표시한다

 

EXTRACT

SELECT
    EXTRACT(추출할요소 FROM 날짜컬럼)
FROM
    테이블;

 

함수 사용 설명
EXTRACT(YEAR FROM 날짜데이터 ) 연도
EXTRACT( MONTH FROM 날짜데이터 )
EXTRACT( DAY FROM 날짜데이터 )
EXTRACT( HOUR FROM 날짜데이터) 시간
EXTRACT( MINUTE FROM 날짜데이터 )
EXTRACT( SECOND FROM 날짜데이터 )

 

DATE 타입의 데이터를 지정한 요소만 추출해 NUMBER 타입으로 표시해준다.

 

현재시간에서 추출 할 때 시간부터는 SYSTIMESTAMP만 사용하도록 한다.

만약 계속 SYSDATE를 사용한다면

[ORA-30076: 발췌 소스에 발췌 필트가 부적당합니다] 라는 메세지가 표시된다.

 

TO_CHAR

SELECT
    TO_CHAR(날짜데이터,'포맷')
FROM
	테이블;

 

함수사용 설명 SYSDATE 추출결과
TO_CHAR( 날짜데이터, 'YYYY' ) 연도를 4자로 표시 2023
TO_CHAR( 날짜데이터, 'YY' ) 연도를 2자로 표시  
     
TO_CHAR( 날짜데이터, 'MM' ) 월을 2자로 표시 09
TO_CHAR( 날짜데이터, 'MON' ) 월을 X월, XX월로 표시 9월
     
TO_CHAR( 날짜데이터, 'DD' ) 일자를 2자로 표시  27 (1일인경우 '01'로 표시)
TO_CHAR( 날짜데이터, 'DDD' ) 1년중 몇 번째날인지 3자로 표시 270 (1월1일인경우 '001'로 표시)
     
TO_CHAR( 날짜데이터, 'D' ) 한 주중 몇 번째 날인지 표시 (1은 일요일 ) 4
TO_CHAR( 날짜데이터, 'DAY' ) 요일 3자로 표시 수요일
TO_CHAR( 날짜데이터, 'DY' ) 요일을 1자로 표시
     
TO_CHAR( 날짜데이터, 'WW' ) 1년중 몇 번째 주인지 표시 39
TO_CHAR( 날짜데이터, 'W' ) 1달중 몇 번째 주인지 표시 4
     
TO_CHAR( 날짜데이터, 'AM' ) 오전인지 오후인지 표시(PM과 동일) 오후
TO_CHAR( 날짜데이터, 'PM' ) 오전인지 오후인지 표시(AM과 동일) 오후
     
TO_CHAR( 날짜데이터, 'HH' ) 시간을 01~12시로 표시 07
TO_CHAR( 날짜데이터, 'HH24' ) 시간을 01~24시로 표시 19
     
TO_CHAR( 날짜데이터, 'MI' ) 분을 0~59분으로 표시 16
     
TO_CHAR( 날짜데이터, 'SS' ) 초를 01~ 5초로 표시 05

 

DATE데이터를 CHAR타입으로 변환시켜주는 TO_CHAR()을 이용하여

날짜데이터를 원하는 포맷으로 표시할 수 있다.

 

고정문자열이기때문에 1월, 1일도 '01'로 표시된다.

0을 없애고 싶을 땐 포맷앞에 FM을 같이 넣어주거나 NUMBER타입으로 변환한다.

 

EXTRACT와의 차이점은 타입 차이도 있지만 TO_CHAR()가 포맷이 더 많은편이다. 

 

포맷 출력결과
TO_CHAR( 날짜데이터, 'YYYYMMDD' ) 20230927
TO_CHAR( 날짜데이터, 'YYYY-MM-DD' ) 2023-09-27
TO_CHAR( 날짜데이터, 'YYYY/MM/DD' ) 2023/09/27
TO_CHAR( 날짜데이터, 'YY/MM/DD' ) 23/09/27
TO_CHAR( 날짜데이터, 'DL' ) 2023년 9월 27일 수요일
TO_CHAR( 날짜데이터, 'HH:MI:SS' ) 08:20:23
TO_CHAR( 날짜데이터, 'HH24:MI:SS' ) 20:20:23

 

정해진 포맷 외에 원하는 표시형식이 있다면 SUBSTR, ||로 조합하여 붙여줄 수 있다.

 

SELECT
	TO_CHAR(SYSDATE,'YYYY')||'년의 '||TO_CHAR(SYSDATE,'DDD')||'번째 날입니다.'
FROM
	DUAL;

 

 

오라클 공식문서 

SYSDATE (oracle.com)

SYSTIMESTAMP (oracle.com)

EXTRACT (datetime) (oracle.com)

TO_CHAR (datetime) (oracle.com)

'DB' 카테고리의 다른 글

서브쿼리 종류  (0) 2023.09.25

+ Recent posts