Oracle의 경우, next_day()함수를 사용하면 쉽게 구할 수 있다.

--1:일요일, 2:월요일, 3:화요일, 4:수요일, 5:목요일, 6:금요일, 7:토요일
SELECT
NEXT_DAY(SYSDATE,1)
FROM
DUAL;

 

Mysql의 경우, NEXT_DAY()함수가 존재하지 않기 때문에 별도의 쿼리를 작성하여야 한다.

--0: 일요일, 1: 월요일, 2: 화요일, 3:수요일, 4:목요일, 5:금요일, 6:토요일
SELECT 
CASE
	WHEN T1.choiceDay > date_format(sysdate(),'%w') THEN ADDDATE(SYSDATE(),( T1.choiceDay - date_format(sysdate(),'%w')))
	ELSE ADDDATE( SYSDATE(), (7-date_format(sysdate(),'%w')+T1.choiceDay))
END as resultDay
FROM
( SELECT 6 AS choiceDay FROM DUAL )T1
;

 

오라클은 일요일이 1에서 시작하고, Mysql은 일요일이 0에서 시작하기 때문에 이 부분에 대해서는 유의해야 한다.

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

[SQL] 정규식을 사용한 Select 조회  (0) 2021.01.13
[SQL] 기본 SQL  (0) 2021.01.11
[SQL Template] paging, grid template  (0) 2020.02.04
[SQL] INSERT VALUES((SELECT))  (0) 2016.06.03
MariaDB Connector  (0) 2014.11.17