K 개발자

날짜·시간 함수 본문

데이터베이스/Oracle SQL

날짜·시간 함수

ddingz 2021. 8. 24. 19:12

날짜·시간 함수

데이터베이스에는 날짜를 저장하는 경우가 많다.
날짜는 단순히 문자열로 저장하여 관리할 수도 있지만 날짜형 데이터로 저장하여 관리하면 편리하다.
날짜를 더하거나 차이를 구하는 등의 연산을 손쉽게 처리할 수 있기 때문이다.
다음은 오라클에서 제공하는 주요 날짜 함수이다.

함수 설명
TO_DATE(char, datetime) 문자형(CHAR) 데이터를 DATE형으로 반환
TO_CHAR(date, datetime) DATE형 데이터를 문자열(VARCHAR2)로 반환
ADD_MONTHS(date, 숫자) 날짜에 지정한 달을 더해 DATE형으로 반환
LAST_DAY(date) 날짜에 달의 마지막 날을 DATE형으로 반환
SYSDATE DBMS 시스템상의 당일 날짜를 DATE형으로 반환하는 인자가 없는 함수

날짜와 시간을 나타내는 인수는 'datetime'으로 표기한다.
다음은 datetime의 종류와 약어를 소개한 것이다.

인자 설명
d 요일 순서(1~7, 월=1)
day 요일(월요일~일요일)
dy 요일의 약자(월~일)
dd 1달 중 날짜(1~31)
ddd 1년 중 날짜(1~366)
hh, hh12 12시간(1~12)
hh24 24시간(0~23)
mi 분(0~59)
mm 월 순서(01~12, January=01)
mon 월 이름 약어(Jan~Dec)
month 월 이름(January~December)
ss 초(0~59)
yyyy 4자리 연도
yyy, yy, y 4자리 연도의 마지막 3, 2, 1자리

날짜·시간 함수는 날짜형(DATE) 데이터를 가진 열을 대상으로 연산을 수행하며, 문자형(CHAR, VARCHAR2) 데이터와 날짜형 데이터 간 연산을 수행할 때는 TO_CHAR 함수를 사용하여 문자형으로 변환한 후 연산을 수행한다.
날짜형 데이터는 '-'와 '+'를 사용하여 원하는 날짜로부터 이전(-)과 이후(+)를 계산할 수 있다.


연습문제

-- 마당서점은 주문일로부터 10일 후 매출을 확정한다. 각 주문의 확정일자를 구하시오.
SELECT orderid "주문번호", orderdate "주문일", orderdate + 10 "확정"
FROM Orders;
-- 마당서점이 2020년 7월 7일에 주문받은 도서의 주문번호, 주문일, 고객번호, 도서번호를 모두 보이시오. 단 주문일은 'yyyy-mm-dd 요일' 형태로 표시한다.
SELECT orderid "주문번호", TO_CHAR(orderdate, 'yyyy-mm-dd dy') "주문일", custid "고객번호", bookid "도서번호"
FROM Orders
WHERE orderdate = TO_DATE('20200707', 'yyyymmdd');
-- DBMS 서버에 설정된 현재 날짜와 시간, 요일을 확인하시오.
SELECT SYSDATE, TO_CHAR(SYSDATE, 'yyyy/mm/dd dy hh24:mi:ss') "SYSDATE_1"
FROM Dual;

'데이터베이스 > Oracle SQL' 카테고리의 다른 글

ROWNUM  (0) 2021.08.24
NULL 값 처리  (0) 2021.08.24
문자 함수  (0) 2021.08.23
숫자 함수  (0) 2021.08.23
데이터 조작어  (0) 2021.08.23
Comments