数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

详细讲解Oracle数据库的“周数计算”


发布日期:2020年11月07日
 
详细讲解Oracle数据库的“周数计算”

——日期计算算第n周的第一天及最后一天是几号 by keynes

================================================

—— ww的算法为每年日为第一周开始date+为每一周结尾

—— 例如为第一周的第一天而第一周的最后一天为+=

—— 公式 每周第一天 date + 周 *

—— 每周最后一天date + 周 *

你会发现怎么编排格式都会跑掉

=========================================================================

——日期计算算第n周的第一天及最后一天是几号 by keynes

=========================================================================

—— ww的算法为每年日为第一周开始date+为每一周结尾

—— 例如为第一周的第一天而第一周的最后一天为+=

—— 公式 每周第一天 date + 周 *

—— 每周最后一天date + 周 *

—— 如果以ww格式为主周的起迄如下

asdbWF>select to_date(yyyymmdd) + *to_date(yyyymmdd) + * from dual

TO_DATE( TO_DATE(

JAN JAN

asdbWF>select to_date(yyyymmdd) + *to_date(yyyymmdd) + * from dual

TO_DATE( TO_DATE(

APR APR

Elapsed

—— 验证如下

asdbWF>select to_char(to_date(yyyymmddww) as weeknto_char(to_date(yyyymmddww) as weekto_char(to_date(yyyymmddww) as weekto_char(to_date(yyyymmddww) as weekn from dual

WEEK WEEK WEEK WEEK

Elapsed

asdbWF>

—— iw的算法为星期一至星期日算一周且每年的第一个星期一为第一周

—— 例如为星期六所以用iw的算法是前年的之后才是第一周的开始

—— 公式 每周第一天 next_day(date) + 周 *

—— 每周最后一天next_day(date) + 周 *

—— 如果以iw格式为主周的起迄如下

asdbWF>select next_day(to_date(yyyymmddMONDAY)+ * as first_daynext_day(to_date(yyyymmddMONDAY)+ * as last_day from dual

FIRST_DAY LAST_DAY

JAN JAN

Elapsed

asdbWF>

asdbWF>select next_day(to_date(yyyymmddMONDAY)+ * as first_daynext_day(to_date(yyyymmddMONDAY)+ * as last_day from dual

FIRST_DAY LAST_DAY

APR MAY

Elapsed

asdbWF>

—— 验证如下

asdbWF>select to_char(to_date(yyyymmddiw) as weeknto_char(to_date(yyyymmddiw) as weekto_char(to_date(yyyymmddiw) as weekto_char(to_date(yyyymmddiw) as weekn from dual

WEEK WEEK WEEK WEEK

Elapsed

其它

——== 查今天是 本月 的第几周

SELECT TO_CHAR(SYSDATEWW TO_CHAR(TRUNC(SYSDATEMMWW) + AS weekOfMon from dual

SELECT TO_CHAR(SYSDATEW) AS weekOfMon from dual

——== 查今天是 今年 的第几周

select to_char(sysdateww) from dual

select to_char(sysdateiw) from dual

附注

上文所提之iw及ww格式在doc内解释如下

IW = Week of year ( or ) based on the ISO standard

WW = Week of year () where week starts on the first day of the year and continues to the seventh day of the year

=================================================================================

上一篇:Windows系统崩溃后恢复Oracle9i数据库

下一篇:Oracle内置SQL函数(1)