송민준의 개발노트

Oracle 날짜 / 시간 포맷 (format) 함수 본문

DB/쿼리

Oracle 날짜 / 시간 포맷 (format) 함수

송민준 2020. 7. 7. 17:13

뷰나 서비스단에서 수정 후 저장도 가능하겠지만

쿼리로 하는게 중복코드를 제거하기에 좋은 것 같다.

 

기본적으로

* 기본적으로 대소문자 상관없음
-- 연 월 일 (문자 사이에 원하는 기호 넣으면 됨)
SYSDATE                         -- 2020-07-07 16:59:51
TO_CHAR(SYSDATE)                -- 20/07/07 (기본 세션 설정)
TO_CHAR(SYSDATE, 'YYYYMMDD')    -- 20200707
TO_CHAR(SYSDATE, 'YYYY-MM-DD')  -- 2020-07-07
TO_CHAR(SYSDATE, 'YYYY/MM/DD')  -- 2020/07/07
TO_CHAR(SYSDATE, 'YYYY*MM*DD')  -- 2020*07*07

-- 연 월 일 개별
TO_CHAR(SYSDATE, 'YYYY') -- 2020
TO_CHAR(SYSDATE, 'MM')   -- 07
TO_CHAR(SYSDATE, 'MON')  -- 7월
TO_CHAR(SYSDATE, 'D')    -- 3   ( 일요일 1 기준으로 주를 숫자로 표현)
TO_CHAR(SYSDATE, 'DD')   -- 07
TO_CHAR(SYSDATE, 'DDD')  -- 189 (1년 기준 일수)
TO_CHAR(SYSDATE, 'DAY')  -- 화요일
TO_CHAR(SYSDATE, 'DY')   -- 화
TO_CHAR(SYSDATE, 'WW')   -- 27 (1년 기준 주수)
TO_CHAR(SYSDATE, 'W')    -- 1  (1달 기준 주수)
TO_CHAR(SYSDATE, 'DL')   -- 2020년 7월 7일 화요일 
TO_CHAR(SYSDATE, 'AM')
TO_CHAR(SYSDATE, 'PM')   -- AM , PM 상관없이 오전 오후 해당하는게 나옴
TO_CHAR(SYSDATE, 'HH24') -- 16 (24시 기준)
TO_CHAR(SYSDATE, 'HH')   -- 04 (12시 기준 - AM,PM이랑 같이 쓰면 됨)
TO_CHAR(SYSDATE, 'MI')   -- 58 (분)
TO_CHAR(SYSDATE, 'SS')   -- 40 (초)

 

세션이나 환경설정을 통해 데이터 포맷을 변경할 수도 있다.

세션은 재부팅과 같은 세션이 사라질 경우 초기화가 되고 환경설정은 영구적이다.

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';

위 커리를 실행하면 현재 설정이 나와있다.

 ALTER SESSION SET NLS_DATE_FORMAT = "YYYY-MM-DD"

위와 같은걸루 바꿔줄 수 있다.

'DB > 쿼리' 카테고리의 다른 글

(Oracle)윈도우 함수 사용법  (0) 2020.08.03
그룹 함수  (0) 2020.08.03
(Oracle)서브쿼리(Subquery)란 무엇인가??  (0) 2020.07.27
DECODE, CASE문  (0) 2020.07.25
내장형 함수  (0) 2020.07.25