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 |