슴슴한 IT

[SQLD,SQLP]SQL기본 - 날짜형 함수 본문

SQL

[SQLD,SQLP]SQL기본 - 날짜형 함수

요한바울 2023. 7. 25. 23:27
728x90

날짜형 함수

DATE 타입의 값을 연산하는 함수

 

날짜형 함수 함수 설명
SYSDATE / GETDATE() 현재 날짜와 시각을 출력
TO_DATE(date_string, format) 문자열을 날짜로 변환
EXTRACT('YEAR'|'MONTH'|'DAY' from d)
/ DATEPART('YEAR'|'MONTH'|'DAY', d)
날짜 데이터에서 연월일 데이터를 출력, 시분초 가능
TO_NUMBER(TO_CHAR(d,'YYYY')) / YEAR(d)
TO_NUMBER(TO_CHAR(d,'MM')) / MONTH(d)
TO_NUMBER(TO_CHAR(d,'DD')) / DAY(d)
날짜 데이터에서 연월일 데이터를 출력
Oracle EXTRACT YEAR/MONTH/DAY 옵션이나 
SQL Server DEPART YEAR/MONTH/DAY 옵션과 같은 기능
ADD_MONTH(date, num_months) 날짜(date)에 월(num_months)를 더함
MONTHS_BETWEEN(end_date, start_date) 두 날짜 간 월 차이를 계산
LAST_DAY(date) 해당 date 월의 마지막 날짜를 반환
TRUNC(date, format) 날짜를 지정된 단위로 잘라냄 
ROUND(date, format) 날짜를 지정된 단위로 반올림

※ Oracle / SQL Server 의 함수를 구분해서 표시, '/' 가 없는 경우 공통 함수, 출처 : 한국데이터산업진흥원

 

날짜형 함수 예시

▶ SYSDATE : 현재 날짜와 시각을 반환

SELECT SYSDATE AS current_datetime FROM DUAL;
-- 결과: 2023-07-25 22:45:45 (실행 시간에 따라 결과가 달라질 수 있습니다)

▶ TO_DATE(date_string, format) : 문자열을 날짜로 변환 

SELECT TO_DATE('2023-06-23', 'YYYY-MM-DD') AS converted_date FROM DUAL;
-- 결과: 2023-07-25

▶ EXTRACT(unit From date) : 날짜에서 지정된 시간 단위(unit)의 값을 추출 

SELECT EXTRACT(YEAR FROM DATE '2023-07-25') AS year FROM DUAL;
-- 결과: 2023
SELECT EXTRACT(MONTH FROM DATE '2023-07-25') AS month FROM DUAL;
-- 결과: 6

▶ ADD_MONTHS(date, num_months) : 날짜에 월을 더함 

SELECT ADD_MONTHS(DATE '2023-07-25', 3) AS new_date FROM DUAL;
-- 결과: 2023-10-25

▶ TO_NUMBER(string, [format]) : string을 숫자로 변환, [format]은 옵션

SELECT TO_NUMBER(TO_CHAR(DATE '2023-07-25', 'YYYY')) AS new_date FROM DUAL;
-- 결과: 2023

▶ MONTHS_BETWEEN(end_date, start_eate) : 두 날짜간 월 차이를 계산

SELECT MONTHS_BETWEEN(DATE '2023-12-31', DATE '2023-06-23') AS months_diff FROM DUAL;
-- 결과: 5.32258064516129

▶ LAST_DAY(date) : 해당 월의 마지막 날짜를 반환

SELECT LAST_DAY(DATE '2023-07-25') AS last_day FROM DUAL;
-- 결과: 2023-07-31

▶ TRUNC(date, format) : 날짜를 지정 된 단위로 잘라냄

SELECT TRUNC(DATE '2023-07-25', 'YYYY') AS truncated_date FROM DUAL;
-- 결과: 2023-01-01

▶ ROUND(date, format) : 날짜를 지정 된 단위로 반올림

SELECT ROUND(DATE '2023-07-25', 'MM') AS rounded_date FROM DUAL;
-- 결과: 2023-08-01

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90