K 개발자
날짜·시간 함수 본문
날짜·시간 함수
데이터베이스에는 날짜를 저장하는 경우가 많다.
날짜는 단순히 문자열로 저장하여 관리할 수도 있지만 날짜형 데이터로 저장하여 관리하면 편리하다.
날짜를 더하거나 차이를 구하는 등의 연산을 손쉽게 처리할 수 있기 때문이다.
다음은 오라클에서 제공하는 주요 날짜 함수이다.
함수 | 설명 |
---|---|
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;
Comments