NEXT_DAY¶
说明¶
指定日期date和星期X,求出星期X的日期。
参数¶
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