Oracle NEXT_DAY() 函数使用指南

Oracle NEXT_DAY() 是一个内置函数,它返回晚于给定的日期的指定第一个工作日的日期。

Oracle NEXT_DAY() 语法

这里是 Oracle NEXT_DAY() 函数的语法:

NEXT_DAY(date, char)

参数

date

必需的。

char

必需的。 它必须是会话日期语言中的星期几,可以是全名或缩写。所需的最小字母数是缩写版本中的字母数。紧跟在有效缩写后面的任何字符都将被忽略。

返回值

Oracle NEXT_DAY() 函数返回晚于给定的日期的指定第一个工作日的日期。

该函数的返回值与 date 参数具有相同的小时、分钟和秒。无论 date 是什么类型,该函数的返回值类型总是 DATE

如果任意一个参数为 NULLNEXT_DAY() 将返回 NULL

Oracle NEXT_DAY() 示例

这里有几个展示了 Oracle NEXT_DAY() 函数用法的示例。

基本用法

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_LANGUAGE = 'English';
SELECT
  NEXT_DAY('2023-02-12', 'Tuesday')
FROM dual;

输出:

NEXT_DAY('2023-02-12','TUESDAY')
___________________________________
2023-02-14

本示例将会话的语言调整为 English,并向函数中传入了 Tuesday。当然您剋是用 Tuesday 的缩写 Tue

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_LANGUAGE = 'English';
SELECT
  NEXT_DAY('2023-02-12', 'Tue')
FROM dual;

输出:

NEXT_DAY('2023-02-12','TUE')
_______________________________
2023-02-14

语言设置

第二个参数与当前会话使用的语言有关系,假设您使用简体中文,您可以使用如下语句:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
ALTER SESSION SET NLS_LANGUAGE = 'SIMPLIFIED CHINESE';
SELECT
  NEXT_DAY('2023-02-12', '星期二')
FROM dual;

输出:

NEXT_DAY('2023-02-12','星期二')
_______________________________
2023-02-14

NULL 参数

如果任意一个参数为 NULLNEXT_DAY() 将返回 NULL

ALTER SESSION SET NLS_LANGUAGE = 'English';
SET NULL 'NULL';
SELECT
    NEXT_DAY(NULL, 'Tue') NULL_1,
    NEXT_DAY('2023-02-12', NULL) NULL_2,
    NEXT_DAY(NULL, NULL) NULL_3
FROM dual;

输出:

NULL_1    NULL_2    NULL_3
_________ _________ _________
NULL      NULL      NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle NEXT_DAY() 是一个内置函数,它返回晚于给定的日期的指定第一个工作日的日期。