select
date_col,to_number(to_char(trunc(sysdate,'yyyy'),'d'))
year_week_day,first_day_week,week_no,week_no
-
first_day_week
+
1
week_no
from
(
select
date_col,
to_number(to_char(trunc(sysdate,'mm')
+
7
-
1
,'ww'))
first_day_week,
to_number(to_char(date_col
+
7
-
1,'ww'))
week_no
from
(
select
trunc(sysdate,'mm')
+
rownum
-
1
date_col
from
dba_objects
where
rownum
<=
to_number(to_char(last_day(sysdate),'dd'))))
select
from (select to_date('2013-01-01', 'yyyy-mm-dd') + rownum - 1 days
from dba_objects) a
where extract(year from days) = 2013
and to_char(days, 'WW') = 22
and to_char(days, 'day') in ('星期一', '星期二', '星期三', '星期四', '星期五')
年份:2013,第几周:22
PROCEDURE getWeekly( p_date IN DATE, -- 月份所在日期
p_number IN NUMBER, -- 第几周
p_startDATE OUT DATE , --该周开始日期
p_endDATE OUT DATE ) --该周结束日期
AS
v_lastDay DATE;
v_firstDay DATE;
BEGIN
v_lastDay := LAST_DAY(p_date);
v_firstDay := ADD_MONTHS(v_lastDay, -1) + 1;
p_startDate := ROUND(v_firstDay + 7(p_number-1)-1, 'DAY');
p_endDate := p_startDate + 6;
END getWeekly;
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;
看看有你要的结果没。
SELECT to_char(SYSDATE,'iw') -to_char(last_day(add_months( SYSDATE,-1))+1,'iw')+1 FROM DUAL;
这样统计出来的每月的1号所在的周为第一周
select tdate, to_char(tdate,'day')
from (
select to_date('2011-03-18','yyyy-mm-dd') + rownum -1 as tdate
from all_objects
where rownum <= to_date('2011-03-30','yyyy-mm-dd') - to_date('2011-03-18','yyyy-mm-dd') + 1
) t
where to_char(tdate,'day') = '星期一'
其中t表是构建你需要的这一个时间段的日期列表, to_char(days,'day')得到的结果是星期几
以上就是关于oracle 从系统里取出一个月的第几周全部的内容,包括:oracle 从系统里取出一个月的第几周、oracle 获取指定周的星期一到星期五日期、ORACLE中怎么判断某一周的开始和结束日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)