NEXT_DAY

Syntax

NEXT_DAY
(
  value          IN date,
  weekday        IN text
)
RETURNS date;

NEXT_DAY
(
  value          IN date,
  weekday_index  IN integer
)
RETURNS date;

NEXT_DAY
(
  value          IN TIMESTAMP WITH TIME ZONE,
  weekday        IN text
)
RETURNS TIMESTAMP without time zone;

NEXT_DAY
(
  value          IN TIMESTAMP WITH TIME ZONE,
  weekday_index  IN integer
)
RETURNS TIMESTAMP without time zone;

개요

주어진 날짜 이후에 나오는 첫 번째 특정 요일의 날짜를 반환한다.

문자열 형태의 요일(예: 'Monday', 'Tue' 등) 또는 요일 인덱스(1부터 7, 1은 일요일)를 인자로 받아 처리한다.

TIMESTAMP WITH TIME ZONE 타입의 경우, 날짜 계산 후 원래 시간 부분을 그대로 유지하여 타임스탬프 값을 반환한다.

파라미터

파라미터
설명

value

date, timestamp 타입이다; 기준이 되는 날짜 값이다.

weekday

text 타입이다; 찾고자 하는 요일을 나타내는 문자열이다. Oracle의 요일 표기 규칙을 따르며, 입력된 문자열의 앞 3글자만 사용된다. 문자열 앞 3글자는 대/소문자 상관없이 아래와 같다. "sun", "mon", "tue", "wed", "thu", "fri", "sat"

weekday_index

integer 타입이다; 찾고자 하는 요일의 인덱스이다. 유효한 값은 1부터 7까지이며, 1은 일요일, 2는 월요일, …, 7은 토요일로 간주된다.

예제

-- 문자형 요일 예제: '2023-05-15' 이후의 첫 번째 Monday 반환
SELECT oracle.NEXT_DAY('2023-05-15'::date, 'Monday');

  next_day  
------------
 2023-05-22
(1 row)

-- 인덱스 기반 요일 예제: '2023-05-15' 이후의 첫 번째 월요일(인덱스 2) 반환
SELECT oracle.NEXT_DAY('2023-05-15'::date, 2);

  next_day  
------------
 2023-05-22
(1 row)

-- TIMESTAMP WITH TIME ZONE 예제 (문자형):
SELECT oracle.NEXT_DAY('2023-05-15 14:30:00+09'::timestamptz, 'Friday');

      next_day       
---------------------
 2023-05-19 14:30:00
(1 row)

-- TIMESTAMP WITH TIME ZONE 예제 (인덱스):
SELECT oracle.NEXT_DAY('2023-05-15 14:30:00+09'::timestamptz, 6);

      next_day       
---------------------
 2023-05-19 14:30:00
(1 row)

Last updated