IT/Oracle

오라클 DATE 타입 세세하게 파해쳐보기 (시간, 오전, 오후, 24시간 표기법, 마지막시간, 밀리세컨드 확인방법)

귀차니즘 극복 2023. 9. 15. 18:10
728x90
반응형

오늘은 오라클에서 TO_CHAR를 통해 DATE 타입을 표시하는 방법에 대해서 한번 알아보겠습니다.

 

 

먼저 가장 간단한 24시간 표기 방식입니다.

 

24시간 표기를 위해서 HH24MISS를 붙여주면 아래와 같이 24시간 형식으로 표기가 됩니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24MISS')
FROM DUAL ;

 

[수행결과]

 

 

다음은 24시간 표기방식이지만, 사람이 알아보기 편하게 포맷팅을 한 내용의 결과입니다.

 

중간중간 표기를 할 문자를 추가적으로 표기하면 아래와 같이 포맷팅이 됩니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS')
FROM DUAL ;

 

[수행결과]




그럼 이번에는 24시간이라는 표현을 없애면 어떻게 될까요?

 

기존에 HH24MISS의 24를 빼고 한번 수행해 봅니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYYMMDD HHMISS')
FROM DUAL ;

 

[수행결과]

24시간을 빼고 나니 오후 한시가 01로 표현이 되었습니다.

 

 

포맷팅이 없어 보기가 어려우니 이번에 포맷팅을 해서 한번 조회해봅니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH:MI:SS')
FROM DUAL ;

 

[수행결과]

확실히 오후 1시가 01로 표기된 것이 보입니다.

 

 

 

그럼 오전/오후를 표기하려면 어떻게 SQL을 작성해야 할까요?

 

오전/오후를 표기하고 싶은 부분에 AM을 넣어주면 됩니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYYMMDD AM HHMISS')
FROM DUAL ;

 

[수행결과]

AM이라고 입력했지만, 오후라고 표기되어서 오후 1시인 것을 알 수 있습니다.

 

 

그럼 이번에도 포맷팅을 해 알아보기 쉽게 해볼까요?

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD AM HH:MI:SS')
FROM DUAL ;

 

[수행결과]

이번에는 정확히 보기 좋게 오후와 시간이 표기된 것을 알 수 있습니다.

 

반응형

 

물론, 똑똑하신 분들이라 예상하셨겠지만 위에서는 AM을 입력했지만,

 

PM을 입력해도 됩니다.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD PM HH:MI:SS')
FROM DUAL ;

 

[수행결과]

 

 


그럼 이번에는 해당 일자의 마지막 시간은 어떻게 찾을 수 있을까요?

 

[SQL]

SELECT TO_DATE('20230915', 'YYYYMMDD') + 0.99999 AS DAY_END_TM
FROM DUAL ;

 

[수행결과]

 

 

 

이번에는 위 방법 말고 예상 가능한 방법으로, 59분 59초로 한번 만들어 봅시다.

 

[SQL]

SELECT TO_DATE('20230915235959', 'YYYYMMDDHH24MISS') AS DAY_END_TM
FROM DUAL ;

 

[수행결과]



그럼, 주문이 발생한 오늘자 매출을 조회하기 위해서는 위와 같은 방법으로 시간을 추출하면 됩니다.

 


그리고 여기서 또하나의 궁금증은? 초단위 아래인 밀리세컨드까지 표현이 가능하냐 인데요.

 DATE 타입이 밀리세컨드까지 표시가 가능한지 테스트를 해봅시다.

 

밀리세컨드를 표기하기 위해서는 FF라는 것을 붙여볼 수 있는데요.

 

[SQL]

SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24MISSFF')
FROM DUAL ;

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SSFF')
FROM DUAL ;

 

[수행결과]

 

 

DATE 타입은 밀리세컨드까지 표기할 수 없습니다.

 

밀리세컨드까지 시간을 호라용하기 위해서는 TIMESTAMP 타입을 활용해야 하는 것이구요.

 

 

오늘은 오라클 DB의 DATE타입을 가지고,

 

다양한 날짜와 시간을 표기하는 방법을 알아보았습니다.

 

 

보시고 많은 도움이 되셨으면 좋겠습니다.

 

감사합니다.

728x90
반응형