Oracle 获取当前日期是月的第几周
函数FUNC_GET_WEEKOFMONTH: IW 是年的自然周; WW是年的第一天起开始算7天为一周
FUNCTION FUNC_GET_WEEKOFMONTH (V_PSD DATE)
RETURN NUMBER
IS
N_WEEK NUMBER (11) := 0;
BEGIN
SELECT TO_CHAR (V_PSD, 'IW') - TO_CHAR (TRUNC (V_PSD, 'MM'), 'IW') + 1 INTO N_WEEK FROM DUAL;
RETURN NVL (N_WEEK, 0);
EXCEPTION
WHEN OTHERS
THEN
LOGGER.ERROR (SUBSTR (SQLERRM, 1, 512) || ',Error');
RETURN 0;
END FUNC_GET_WEEKOFMONTH;
获取当前日期所在月的每一周的周一~周日,结果如下图:

代码:
PROCEDURE PRC_Z_WEEK_CONFIG(CUR_DATE IN VARCHAR2, EXITCODE OUT NUMBER) AS
/******************************************************************************
NAME:
documnet:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
******************************************************************************/
GV_LOGIC_NAME VARCHAR2(40) := 'Z_WEEK_CONFIG;';
V_MON_FIRST DATE;
V_MON_CUR DATE;
V_MON_END DATE;
V_MON_DAY DATE;
V_SUN_DAY DATE;
V_FLAG VARCHAR(2);
V_WEEK_NO INTEGER;
BEGIN
EXITCODE := -1;
LOGGER.INFO(GV_LOGIC_NAME || ':' || ' ' || ' Start');
if CUR_DATE is null then
V_MON_CUR := V_SYSDATE;
else
V_MON_CUR := to_date(CUR_DATE, 'yyyymmdd');
END IF;
V_MON_FIRST := LAST_DAY(ADD_MONTHS(V_MON_CUR, -1)) + 1; -- the first day of month
V_MON_END := LAST_DAY(V_MON_CUR); -- the last day of month
V_MON_DAY := V_MON_FIRST; -- monday : the first day of month is monday too
V_SUN_DAY := V_MON_FIRST + (8 - TO_NUMBER(TO_CHAR(V_MON_FIRST, 'd'))); -- sunday : the end day of month is sunday too
V_FLAG := 'N';
V_WEEK_NO := 1;
DELETE FROM z_week_config;
while v_mon_end > v_sun_day loop
if V_MON_DAY = trunc(V_MON_DAY, 'd') then
v_sun_day := V_MON_DAY;
else
v_sun_day := v_mon_day + (8 - to_number(to_char(v_mon_day, 'd')));
end if;
if v_sun_day > v_mon_end then
v_sun_day := v_mon_end;
END IF;
if v_mon_cur >= v_mon_day and v_mon_cur <= v_sun_day then
v_flag := 'Y';
END IF;
insert into z_week_config
(version_day, mon_day, sun_day, icon, week_no, flag)
values
(v_mon_cur,
v_mon_day,
v_sun_day,
to_char(v_mon_day, 'mm/dd') || '~' || to_char(v_sun_day, 'mm/dd'),
'WEEK' || v_week_no,
v_flag);
v_mon_day := v_sun_day + 1;
v_week_no := v_week_no + 1;
end loop;
COMMIT;
----- if this month is not enough 6 weeks,then add to 6 weeks
while v_week_no <= 6 loop
insert into z_week_config
(version_day, week_no, flag)
values
(v_mon_cur, 'WEEK' || v_week_no, 'N');
v_week_no := v_week_no + 1;
end loop;
COMMIT;
LOGGER.INFO(GV_LOGIC_NAME || ':' || '' || ',Success');
EXITCODE := 0;
EXCEPTION
WHEN OTHERS THEN
EXITCODE := SQLCODE;
LOGGER.ERROR;
END PRC_Z_WEEK_CONFIG;
Oracle 获取当前日期是月的第几周的更多相关文章
- Oracle 获取当前日期及日期格式
http://blog.sina.com.cn/s/blog_6168ee920100l2ye.html Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: ...
- js获取当前日期一年的第几周
获取当前日期一年中的第几周 function theWeek() { ; now = new Date(); years = now.getYear() ) years += ); days[] = ...
- js获取几个月前,几周前时间。
/** * DK 命名空间 防止全局变量污染 */ var DK = {} ; /** * 获取前几个月,默认为一个月,当前时间 * @author duke * @date 格式为yy ...
- moment.js获取当前日期是当年的第几周
/** * 实现当前日期是当年的第几周,再向前和向后推几周 * js数组保存当前日期的前后两周(共五周的数据) * */ var initSearchMajorChanges = function() ...
- oracle获取年、月、日
--获取年 select extract(year from date'2011-05-17') year from dual; --获取月 select extract(month from dat ...
- Oracle 之 获取当前日期及日期格式化
Oracle 获取当前日期及日期格式: 获取系统日期: SYSDATE 格式化日期: TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS) ...
- javascript 添加行,删除行,datepicker获取当前日期和上一个月日期并设置格式,笔记
$(function () { getdatepicker(); today(); getPreMonth(); getdatetimepicker(); }); function today(){ ...
- JS中在当前日期上追加一天或者获取上一个月和下一个月
/** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ function getPreMonth(date) { var arr = date. ...
- Oracle获取系统时间及格式化
Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS) ...
随机推荐
- cookbook 10.1生成随机密码
任务: 随机地创造出新密码.比如,有时需要给新的用户账号分配新的密码. 解决方案: from random import choice import string def GenPasswd(leng ...
- 三元环HDU 6184
HDU - 6184 C - Counting Stars 题目大意:有n个点,m条边,问有一共有多少个‘structure’也就是满足V=(A,B,C,D) and E=(AB,BC,CD,DA,A ...
- Windows下安装sass和compass失败的解决办法
sass依赖Ruby,所以,首先得先安装个Ruby sass的安装步骤: 在安装的时候,请勾选Add Ruby executables to your PATH这个选项,添加环境变量,不然以后使用编译 ...
- devServer之proxy跨域
配置 注意:修改之后要重新运行一遍项目才行 devServer:{ contentBase:'./', proxy:{ // 当你请求是以/api开头的时候,则我帮你代理访问到http://local ...
- (七)C语言之顺序结构
- JS基础_原型对象
原型prototype 我们创建的每一个函数,解析器都会向函数中添加一个属性prototype 这个属性,对应着一个对象,这个对象就是我们所谓的原型对象 1.如果函数作为普通函数调用prototype ...
- Mac安装软件提示文件损坏
Mac安装软件提示文件损坏,请移至废纸篓 sudo spctl --master-disable
- vscode 插件推荐 - 献给所有前端工程师(2018.4.29更新)
大家好,我是Moer.VScode现在已经越来越完善.性能远超Atom和webstorm,你有什么理由不用它?在这里,我会给你们推荐很多实用的插件,让你对 vscode 有更深刻的体会,渐渐地你就会知 ...
- vxworks 开发环境搭建
育儿 分类: 嵌入式开发 VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实操作系统 windriv vxwork时操作系统(RTOS),它以其良好的可靠性和卓越的实 ...
- System.Runtime.CompilerServices.Unsafe
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.CompilerServices.Un ...