FUN_SYS_GET_NUM_WEEK(日期在第几周)
来源:互联网 发布:程序员招聘网站 编辑:程序博客网 时间:2024/04/29 02:43
CREATE OR REPLACE FUNCTION LBI_SYS_VDF.FUN_SYS_GET_NUM_WEEK (vv_date in varchar2,
vv_week_start_flag in varchar2)
return number is -- created by liuzhiren
vv_day_flag varchar2(4);
vv_last_day_flag varchar2(4);
vd_first_day date;
vd_date date;
vd_last_day date;
vi_num_week varchar2(6);
vv_year varchar2(4);
vv_next_year varchar2(4);
--vv_endweek varchar2(8);
--vi_position integer;
begin
vd_first_day := trunc(to_date(vv_date,'yyyymmdd'),'yyyy');
vd_last_day := to_date(substr(vv_date,1,4)||'1231','yyyymmdd');
vd_date := to_date(vv_date,'yyyymmdd');
vv_year := substr(vv_date,1,4);
vv_next_year := to_char(to_number(substr(vv_date,1,4))+1);
vv_day_flag := to_char(vd_first_day,'d');
vv_last_day_flag := to_char(vd_last_day,'d');
--vv_week_start_flag = '0' means the first day of week is sunday
if vv_week_start_flag = '0' then
if vv_day_flag = '1' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day + 1 )/7)),2,'0');
elsif vv_day_flag = '2' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day - 5)/7) + 1),2,'0');
elsif vv_day_flag = '3' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day - 4)/7) + 1),2,'0');
elsif vv_day_flag = '4' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day - 3)/7) + 1),2,'0');
elsif vv_day_flag = '5' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day - 2)/7) + 1),2,'0');
elsif vv_day_flag = '6' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day - 1)/7) + 1),2,'0');
elsif vv_day_flag = '7' then
vi_num_week := vv_year || lpad(to_char(ceil((vd_date - vd_first_day)/7) + 1),2,'0');
end if;
if vv_last_day_flag <> '7' and vd_date >= vd_last_day - to_number(vv_last_day_flag) + 1 then
vi_num_week := vv_next_year || '01';
end if;
- FUN_SYS_GET_NUM_WEEK(日期在第几周)
- FUN_SYS_GET_NUM_WEEK(时间在第几周)2
- SQL 返回日期在年内的第几周、第几天、第几季
- 取当前日期在当年的第几周
- c# 取当前日期是在一年中的第几周
- 写了个在EXCEL中取日期在第几周的函数
- C#中怎么取到当前日期是在一年中的第几周
- C#中怎么计算当前日期是在一年中的第几周
- [转]某个日期是在一年中的第几周——被遗忘的GregorianCalendar类
- C#中怎么计算当前日期是在一年中的第几周
- C#判断两个日期是否在同一周,某日期是本月的第几周
- Vb6连接Oracle的不同方法 + 计算日期在第几周
- 当前日期是本月的第几周
- 返回当前日期是第几周
- 由日期得到一年中的第几周
- 获取日期对应的第几周
- 日期是当月的第几周
- C#获取日期是月中第几周
- 常用算法链接统计
- ava map的使用与遍历
- C学习笔记(1)--动态分配内存
- POJ 1655 Balancing Act(树型DP)
- 肃蚁薆膁肂莁螁肇肁蒃薄羃
- FUN_SYS_GET_NUM_WEEK(日期在第几周)
- 芆薈袂膁聿蒄袁袁莄莀蒈羃
- 袀葿蚄肃肈莈薆蚆芇膈蕿螂
- HDU1787 GCD Again
- CSS3 Media Queries在iPhone4和iPad上的运用
- 薃袇膅肃葿袆袅荿莅袅羇膂
- 莀羈羅莂蚂羀肀腿薂袃肆莈
- 聿芈芆薁肈羈蒁薇肇膀莄袆
- DP和PX的转换