NEXT_DAY

说明

指定日期date和星期X,求出星期X的日期。

语法

next_day ::=

参数

date_expression

指定的DATE类型的日期

week_expression

指定的星期X ,X支持int类型和text类型。int类型的取值范围为 1~7,text类型支持中文的星期一~星期日或者英文的Monday~Sunday,且支持英文缩写(前三个字母)。

返回值

DATE类型,根据给定的日期返回星期X的日期。

注解

由于ORACLE数据库采用非ISO标准(即每周的第一天为星期日),因此NEXT_DAY函数可兼容两种标准,若需要采用非ISO标准,可在使用该函数之前设定COMPATABLE_DBMS为1;若需要采用ISO标准(即每周的第一天为星期一),则设定COMPATABLE_DBMS为0;

示例

示例1: 用 NEXT_DAY 获取日期,指定int类型的星期X( ISO 标准)

--  用 NEXT_DAY 获取日期,指定int类型的星期X( ISO 标准)
SELECT NEXT_DAY('2008-8-27', 4);
NEXT_DAY(date)      |
--------------------
2008-08-28          |
总数目:1



--  由于 2008-8-27 是星期三,已经过了星期二
--  因此再指定星期二的时候会跳到下一周,返回下星期二的日期
SELECT NEXT_DAY('2008-8-27', 2);
NEXT_DAY(date)      |
--------------------
2008-09-02          |
总数目:1

示例2: 用 NEXT_DAY 获取日期,指定int类型的星期X(非 ISO 标准)

--  用 NEXT_DAY 获取日期,指定int类型的星期X(非 ISO 标准)
--  由于这里的 4 表示周三,且 2008-8-27 是周三
--  因此会跳到下一周的周三,并返回这天的日期
SELECT NEXT_DAY('2008-8-27', 4);
NEXT_DAY(date)      |
--------------------
2008-09-03          |
总数目:1


SELECT NEXT_DAY('2008-8-27', 2);
NEXT_DAY(date)      |
--------------------
2008-09-01          |
总数目:1

示例3: 用 NEXT_DAY 获取日期,指定中文的星期X( ISO 标准)

--  由于 2023-3-9 是星期四,已经过了星期三
--  因此再指定星期三的时候会跳到下一周,返回下周星期三的日期
SELECT NEXT_DAY('2023-3-9','星期三');
NEXT_DAY(date)      |
--------------------
2023-03-15          |
总数目:1


--  指定中文的星期X时,前三个汉字匹配成功即可
SELECT NEXT_DAY('2023-3-9','星期二dsaf安抚');
NEXT_DAY(date)      |
--------------------
2023-03-14          |
总数目:1

示例4: 用 NEXT_DAY 获取日期,指定中文的星期X(非 ISO 标准)

--  用 NEXT_DAY 获取日期,指定中文的星期X(非 ISO 标准)
--  2023-3-9 是星期四
--  因此会跳到下一周的星期四,并返回这天的日期
SELECT NEXT_DAY('2023-3-9','星期四');
NEXT_DAY(date)      |
--------------------
2023-03-16          |
总数目:1


SELECT NEXT_DAY('2023-3-9','星期三');
NEXT_DAY(date)      |
--------------------
2023-03-15          |
总数目:1

示例5: 用 NEXT_DAY 获取日期,指定英文的星期X( ISO 标准)

--  由于 2023-3-9 是Thursday,已经过了Thursday
--  因此再指定Thursday的时候会跳到下一周,返回下个Thursday的日期
SELECT NEXT_DAY('2023-3-9','Thursday');
NEXT_DAY(date)      |
--------------------
2023-03-16          |
总数目:1


--  支持英文星期X的缩写(前三个字母)
SELECT NEXT_DAY('2023-3-9','Sun');
NEXT_DAY(date)      |
--------------------
2023-03-12          |
总数目:1


--  英文星期X不区分大小写,前三个字母匹配成功即可
SELECT NEXT_DAY('2023-3-9','sunABC');
NEXT_DAY(date)      |
--------------------
2023-03-12          |
总数目:1

示例6: 用 NEXT_DAY 获取日期,指定英文的星期X(非 ISO 标准)

--  用 NEXT_DAY 获取日期,指定英文的星期X(非 ISO 标准)
--  2023-3-9 是Thursday
--  因此会跳到下一周的Thursday,并返回这天的日期
SELECT NEXT_DAY('2023-3-9','Thursday');
NEXT_DAY(date)      |
--------------------
2023-03-16          |
总数目:1


SELECT NEXT_DAY('2023-3-9','Sunday');
NEXT_DAY(date)      |
--------------------
2023-03-12          |
总数目:1