데이터베이스/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;