본문 바로가기
SQL/기초

SQL 정리 4일차 -2- 날짜형 함수, 변환형 함수

by 유서담 2023. 8. 11.

4.4 날짜형 함수

함 수 사 용 목 적
SYSDATE 현재 시스템의 날짜 및 시간을 구함
LAST_DAY 지정한 날짜의 해당월의 마지막 날짜를 구함
MONTHS_BETWEEN 두 날짜사이의 개월수를 구함
ADD_MONTHS 지정한 날짜로부터 몇 개월 후의 날짜를 구함
ROUND 날짜에 대한 반올림
TRUNC 날짜에 대한 버림

 

- SYSDATE ( 현재 날짜 출력 )

SYSDATE --> 23/08/11

 

- LAST_DAY ( 날짜값 / 날짜값에 해당하는 월의 마지막 날짜를 반환 

LAST_DAY ( '23/08/11' ) --> '23/08/31'

SELECT LAST_DAY ( '23/08/11' ) +1 FROM DUAL --> '23/09'01'
이런식의 연산도 가능하다

 

- MONTHS_BETWEEN ( 날짜값1 , 날짜값2 / 날짜값1에서 날짜값2까지의 월 수를 반환)

SELECT MONTHS_BETWEEN('2023-09-01', '2023-02-15') AS months_diff FROM dual;

MONTHS_DIFF
------------
5.1733871

 

- ADD_MONTHS ( 날짜값, 숫자값 / 날짜값에 숫자값에 기입한 수를 더한다 [ 음수를 넣으면 빼기가 된다] )

SELECT ADD_MONTHS('2023-09-01', 3) AS new_date FROM dual;
NEW_DATE
------------
2023-12-01

 

- ROUND ( 날짜값 , 자리수 /  날짜를 입력하고 자리수 기준에 맞게 반올림 ) 

SELECT ROUND(TO_DATE('2023-09-17', 'YYYY-MM-DD'), 'MM') AS rounded_date FROM dual;
ROUNDED_DATE
------------
2023-10-01

SELECT ROUND(TO_DATE('2023-09-17', 'YYYY-MM-DD'), 'YYYY') AS rounded_date FROM dual;
ROUNDED_DATE
------------
2023-01-01

 

- TRUNC ( 날짜값, 자리수 / 날짜를 입력하고 자리수 기준에 맞게 자른다 )

SELECT TRUNC(TO_DATE('2023-09-17', 'YYYY-MM-DD'), 'MM') AS truncated_date FROM dual;
TRUNCATED_DATE
--------------
2023-09-01

SELECT TRUNC(TO_DATE('2023-09-17', 'YYYY-MM-DD'), 'YYYY') AS truncated_date FROM dual;
TRUNCATED_DATE
--------------
2023-01-01

 

날짜에 대한 산술 연산

 

날짜 간의 간단한 계산은 산술연산을 이용하여 쉽게 결과치를 구할 수 있다.

함 수 결과치 사 용 목 적
날짜 + 숫자 날짜 특정한 날로부터 몇일후의 날짜 계산
날짜 - 숫자 날짜 특정한 날로부터 몇일전의 날짜 계산
날짜 - 날짜 숫자 두 날짜사이의 차이를 숫자로 계산

 

4.5 변환형 함수

 

변환함수는 출력되는 데이터를 다양한 형식으로 지정하고 싶은 경우에 많이 사용

함 수 사 용 목 적
TO_CHAR 숫자나 날짜를 문자열로 변환
TO_NUMBER 문자를 숫자로 변환
TO_DATE 문자를 날짜로 변환

 

- TO_CHAR ( 문자값, '형식' / 변환하려는 값을 형식으로 표현 )

SELECT TO_CHAR(500, '$999') FROM dual;
$500

날짜를 문자로 변환도 된다

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL;
2023/09/01

숫자를 문자로 변환시에 형식에 사용되는 요소

요 소 의 미
9 일반적인 숫자를 나타냄
0 앞의 빈자리를 0으로 채움
$ DOLLAR를 표시
L 지역 통화 단위
. 소수점을 표시함
, 천단위를 표시함 

날짜를 문자로 변환시에 형식에 사용되는 주요요소

요 소 의 미
YYYY 4자리 연도로 표시
MM 월을 2자리로 표시
HH, H24 (1~12), (0~23)중의 시간을 표시
MI 분을 표시
SS 초를 표시

 

- TO_DATE ( 문자값, '형식' / 문자값은 날짜를 나타내는 형식에 따라야하고 형식은 문자값의 구조와 일치해야 한다 )

SELECT TO_DATE('2023-09-17', 'YYYY-MM-DD') AS converted_date FROM dual;
CONVERTED_DATE
--------------
2023-09-17

 

- TO_NUMBER( 문자값 / 문자를 숫자로 변환 )

TO_NUMBER ( '1234' ) --> 1234

 

함수 여러개 겹쳐서 사용하는 방법

 

함수3(함수2(함수1(컬럼값, 형식1),형식2),형식3)

함수들은 안쪽에서 바깥쪽의 순서로 적용된다.

 

'SQL > 기초' 카테고리의 다른 글

SQL 정리 6일차 JOIN  (0) 2023.08.16
SQL 정리 5일차 GROUP BY, HAVING  (0) 2023.08.13
SQL 정리 4일차 -1- 문자형 함수, 숫자형 함수  (0) 2023.08.08
SQL 정리 3일차  (0) 2023.08.05
SQL 정리 2일차  (0) 2023.07.31