oracle近一周怎么算 oracle自然周计算

oracle 如何近四周的周一

select trunc(sysdate,'d')+1 近一周周一,trunc(sysdate,'d')+1-7 近二周周一,trunc(sysdate,'d')+1-14 近三周周一,trunc(sysdate,'d')+1-21 近四周周一 from dual

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的栖霞网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

在oracle中怎么计算当天是本月的第几周?

这个算法的结果依赖于当前系统时间是什么时候…假设按照你说的,当前系统时间是星期六,那么它计算的结果就是说这个星期六是本月的第几个星期六。就拿12月来说,12月1日是星期六哦,所以你在12月1号查的时候它结果会是1哦,但是12月2日的时候,你查周日,它的结果仍然是1哦,因为是本月第一次出现的星期日哦!只有当你查12月8日的时候,才开始出现结果2哦…其实你可以在系统里选一些特殊的时间查一下就可以发现规律

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

asdb WFselect to_date( yyyymmdd ) + * to_date( yyyymmdd ) + * from dual

TO_DATE( TO_DATE(

JAN JAN

asdb WFselect to_date( yyyymmdd ) + * to_date( yyyymmdd ) + * from dual

TO_DATE( TO_DATE(

APR APR

Elapsed

—— 验证如下

asdb WFselect to_char(to_date( yyyymmdd ) ww ) as weekn to_char(to_date( yyyymmdd ) ww ) as week to_char(to_date( yyyymmdd ) ww ) as week to_char(to_date( yyyymmdd ) ww ) as weekn from dual

WEEK WEEK WEEK WEEK

Elapsed

asdb WF

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

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

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

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

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

asdb WFselect next_day(to_date( yyyymmdd ) MONDAY )+ * as first_day next_day(to_date( yyyymmdd ) MONDAY )+ * as last_day from dual

FIRST_DAY LAST_DAY

JAN JAN

Elapsed

asdb WF

asdb WFselect next_day(to_date( yyyymmdd ) MONDAY )+ * as first_day next_day(to_date( yyyymmdd ) MONDAY )+ * as last_day from dual

FIRST_DAY LAST_DAY

APR MAY

Elapsed

asdb WF

—— 验证如下

asdb WFselect to_char(to_date( yyyymmdd ) iw ) as weekn to_char(to_date( yyyymmdd ) iw ) as week to_char(to_date( yyyymmdd ) iw ) as week to_char(to_date( yyyymmdd ) iw ) as weekn from dual

WEEK WEEK WEEK WEEK

Elapsed

其它

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

SELECT TO_CHAR(SYSDATE WW ) TO_CHAR(TRUNC(SYSDATE MM ) WW ) + AS weekOfMon from dual

SELECT TO_CHAR(SYSDATE W ) AS weekOfMon from dual

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

select to_char(sysdate ww ) from dual

select to_char(sysdate iw ) 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

lishixinzhi/Article/program/Oracle/201311/18798

oracle怎么查询上周的数据(例如今天是周日,我要查询出上个周一到周日的数据)

--1、取某天在本周中的第几天(默认周日开始算第1天)

select to_char(to_date('2011-04-11','yyyy-mm-dd'), 'd') from dual;

--2、如果要从周一开始算第1天,需要做一些手脚

--大概思路是:1变成7,2变成1,3变成2......,7变成6

select decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),

1,

7,

to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1)

from dual;

--3、再根据上面的结论倒推到上周时间

select to_date('2011-04-04', 'yyyy-mm-dd') -

decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),

1,

7,

to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1) - 7 + 1,

to_date('2011-04-04', 'yyyy-mm-dd') -

decode(to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd'),

1,

7,

to_char(to_date('2011-04-04', 'yyyy-mm-dd'), 'd') - 1) - 7 + 1 + 6

from dual;

Oracle计算周数的几种方式

比如星期一到星期天算一周 查2011年7月完整周数 select max(count1) - 1 from (SELECT count(1) count1 FROM DUAL WHERE TO_CHAR(ADD_MONTHS(LAST_DAY(to_date('201107', 'yyyyMM')), -1) + LEVEL, 'DAY') = '星期一' CONNECT BY LEVEL

oracle 月内周计算

select sysdate 当时日期,

next_day(sysdate,'星期一') 下周星期一,

next_day(sysdate,'星期二') 下周星期二,

next_day(sysdate,'星期三') 下周星期三,

next_day(sysdate,'星期四') 下周星期四,

next_day(sysdate,'星期五') 下周星期五,

next_day(sysdate,'星期六') 下周星期六,

next_day(sysdate,'星期日') 下周星期日 from dual;

select sysdate 当时日期,

trunc(sysdate) 今天日期,

trunc(sysdate,'day') 本周星期日,

trunc(sysdate,'month') 本月初,

trunc(sysdate,'q') 本季初日期,

trunc(sysdate,'year') 本年初日期 from dual;

看看有你要的结果没。


分享文章:oracle近一周怎么算 oracle自然周计算
文章来源:http://pwwzsj.com/article/hgcodd.html