Database/SQL

SQL내장함수 : 날짜/ 시간함수

2022. 8. 3. 18:23

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