본문 바로가기

Database/이론

[DB] 날짜 함수

날짜와시간 함수에 대해서 자세히 알아보겠습니다.

먼저 날짜 형식입니다.

YYYY : 4자리 연도

YYY, YY , Y : 각각 4자리 연도의 마지막 3, 2, 1 자리

MM : 월 / DD : 1달 중 날짜(일자)

DAY : 요일 (월요일 ~ 일요일)

DY : 요일 약자 (월 ~ 일)

HH, HH12 : 12시간 / AM or PM : 오전 or 오후

HH24 : 24시간

MI : 분 / SS : 초

 

SYSDATE : 현재 시간 / 날짜를 반환합니다.

TO_DATE(s1, datetime형식) : 문자열 s1데이터를 날짜 데이터로 변환합니다.

 

select to_date('2024-12-31 오전 06:00', 'YYYY-MM-DD PM HH:MI') from dual;

 

TO_CHAR(date, datetime 형식) : 날짜데이터를 문자형으로 변환시켜줍니다.

 

select to_char(sysdate, 'YYYY-MM-DD')from dual;

 

특정 날짜 값을 받아오고 싶다면 sysdate자리에

to_date함수를 넣으면 됩니다.

두 함수의 차이는 반환되는 데이터 타입이 다른 것 입니다.

TO_DATE는 날짜형으로 변환해주고, 

TO_CHAR은 문자형 데이터로 변환해줍니다.

 

ADD_MONTHS(date, 숫자) : 날짜에서 지정한 달만큼 더해줍니다. ( 1: 다음달, -1 : 이전달)

 

select add_months(sysdate, -3) from dual;

 

LAST_DAY(date) : 그 달의 마지막 날을 반환합니다.

 

select last_day(sysdate) from dual;

 

 

실습을 해볼까요?

 

1. 실행 날짜 기준 연도 조회(테이블 해더에 '연도' / 컬럼에 '2024년')

 

select to_char(sysdate, 'YYYY') AS 연도 FROM DUAL;

 

 

2. 실행 날짜 기준 조회 (테이블 헤더에 '월' / 컬럼에 '12월')

 

select to_char(sysdate, 'MM') AS FROM DUAL;

 

 

3. 실행 날짜 기준 조회 (테이블 헤더에 '일' / 컬럼에 '27일')

 

select to_char(sysdate, 'DD') AS FROM DUAL;

 

 

4. 실행 기준 시/분 조회 (테이블 헤더에 각각 '시', '분')

컬럼에 각각('?시' , '분')

 

select to_char(sysdate, 'HH')as 시,to_char(sysdate, 'MI') as FROM DUAL;

 

시와 분을 같은 테이블에서 조회하기 위해서

콤마를 쓰면 복수개를 조회할 수 있다는 점이 핵심인데

단순하지만 오래 생각해 본 것 같습니다.

 

 

5. 실행 기준 시간대가 오전인지 오후인지 조회

 

select to_char(sysdate, 'PM') AS 오전OR오후 FROM DUAL;

 

 

 

별칭에 특수문자나 숫자가 들어 갈 경우 

별칭을 큰따옴표로 감싸야 에러가 발생하지 않습니다.

 

6. 문자열 2024-12-31 오전 07:23을 문자열 '2024.12.31' 조회

 

select to_char(to_date('2024-12-31 오전 07:23', 'YYYY-MM-DD PM HH:MI'), 'YYYY.MM.DD')FROM DUAL;

 

이때는 TO_CHAR 함수에 앞 인자로 날짜데이터가 들어가야 하므로

TO_DATE를 사용해 날짜 데이터로 변환 후 넣었습니다.

 

 

7. 실행 기준 3달 마지막 날은 몇월 며칠인지 조회

 

select last_day(add_months(sysdate, -3)) from dual;

 

 

이때는 3달 전 마지막 날을 구해야 하므로 LAST_DAY 함수의 인자에 ADD_MONTHS를 넣어줍니다.

 

Oracle의 내장되어 있는 날짜 함수를 알아보고

실습까지 해봤습니다.

날짜 데이터형과

문자 데이터형이 각각 어떤 함수에서

인자로 들어가는지 주의하며 사용해야 할 것 같습니다.

'Database > 이론' 카테고리의 다른 글

[DB] Where  (0) 2024.12.27
[DB] 집계 / 분석/ NULL 함수  (0) 2024.12.27
[DB] Read  (0) 2024.12.26
[DB] DML  (0) 2024.12.26
[DB] Alter  (1) 2024.12.26