SQL내장함수 : 날짜, 시간함수
날짜, 시간함수
함 수 | 반환 | 설 명 |
STR_TO_DATE( string, format ) | DATE | 문자열(STRING) 데이터를 날짜형(DATE)으로 반환 예) STR_TO_DATE('2022-08-04', '%Y-%m-%d') => 2022-08-04 |
DATE_FORMAT( date, format ) | STRING | 날짜형(DATE) 데이터를 문자열(VARCHAR)로 반환 예) DATE_FORMAT('2022-08-04', '%Y-%m-%d') => '2022-08-04' |
ADDDATE( date, interval 지정시간) | DATE | DATE 형의 날짜에서 INTERVAL 지정한 시간만큼 더해줌. 예) ADDDATE('2022-08-04', INTERVAL 15 DAY) => 2022-08-19 |
DATE( date ) | DATE | DATE 형의 날짜 부분을 반환 예) SELECT DATE('2022-08-04 01:02:03'); => 2022-08-04 |
DATEDIFF( date1, date2 ) | INTEGER | DATE 형의 (date1 – date2) 날짜 차이를 반환 예) SELECT DATEDIFF('2022-08-15', '2022-08-01') => 14 |
SYSDATE() | DATE | DBMS 시스템상의 오늘 날짜를 반환하는 함수 예) SYSDATE() → 2022 08-04 12:16:03 |
시간, 날짜 함수 포맷의 주요 지정자
format 인자 | 설명 |
%w | 요일 순서(0~6, Sunday=0) |
%W | 요일(Sunday~Saturday) |
%a | 요일의 약자(Sun~Sat) |
%d | 1달 중 날짜(00~31) |
%j | 1년 중 날짜(001~366) |
%h | 12시간(01~12) |
%H | 24시간(00~23) |
%i | 분(0~59) |
%m | 월 순서(01~12, January=01) |
%b | 월 이름 약어(Jan~Dec) |
%M | 월 이름(January~December) |
%s | 초(0~59) |
%Y | 4자리 연도 |
%y | 4자리 연도의 마지막 2 자리 |
연습문제
질의 4-7. 마당서점은 주문일로부터 10일 후 매출을 확정한다. 각 주문의 확정일자를 구하시오.
SELECT orderid AS 주문번호
, orderdate AS 주문일
, ADDDATE(orderdate, INTERVAL 10 DAY) AS 확정일
FROM orders;
ADDDATE(컬럼명, INTERVAL 더해주는일자,기간)
질의 4-8 . 마당서점이 2014년 7월 7일에 주문받은 도서의 주문번호, 주문일, 고객번호, 도서번 호를 모두 보이시오. 단, 주문일은 '%Y-%m-%d' 형태로 표시한다.
SELECT orderid AS 주문번호
,STR_TO_DATE(orderdate,'%Y-%m-%d') AS 주문일
,custid AS 고객번호
,bookid AS 도서번호
FROM orders
WHERE orderdate = DATE_FORMAT('20140707','%Y-%m-%d');
* orders 테이블에 orderdate 컬럼이 date 타입이므로 STR_TO_DATE() 대신 DATE_FORMAT()도 사용이 가능했다.
질의 4-9. DBMS 서버에 설정된 현재 날짜와 시간, 요일을 확인하시오.
SELECT SYSDATE();
'Database > SQL' 카테고리의 다른 글
[MySQL] 행 번호 출력하기 (0) | 2022.08.07 |
---|---|
NULL값 (0) | 2022.08.03 |
SQL내장함수 : 문자함수 (0) | 2022.08.03 |
SQL내장함수 : 숫자함수 (0) | 2022.08.03 |
'SQL내장함수' 란? (0) | 2022.08.03 |