首页 > 数据库 >Oracle plsql 计算日期间工作日天数

Oracle plsql 计算日期间工作日天数

时间:2022-11-17 13:12:46浏览次数:49  
标签:char ldate 天数 dd interval yyyy fdate Oracle plsql

declare   v_fdate date := to_date('2013-10-4','yyyy-mm-dd');   v_ldate date := to_date('2013-10-22','yyyy-mm-dd');   v_interval_a number;   v_interval_b number;   v_interval_all number; begin   --先算整周有几周,然后乘一周五天工作日   v_interval_a := floor((v_ldate - v_fdate)/7) * 5;   --然后再算剩余的天数   v_interval_b := mod((v_ldate - v_fdate),7);      --从头开始循环,共循环剩余天数次,遇到周六周日,减去一天   for i in 0..v_interval_b - 1 loop     dbms_output.put_line(to_char(v_fdate + i,'day'));     case to_char(v_fdate + i,'day')       when '星期六' then v_interval_b := v_interval_b - 1;       when '星期日' then v_interval_b := v_interval_b - 1;       else null;     end case;   end loop;      --把两部分合并起来,算出总共工作日,并输出   v_interval_all := v_interval_a + v_interval_b;   dbms_output.put_line(to_char(v_fdate,'yyyy-mm-dd') || ' 到 ' ||    to_char(v_ldate,'yyyy-mm-dd') || ' 有 ' || v_interval_all || ' 天工作日'); end;

标签:char,ldate,天数,dd,interval,yyyy,fdate,Oracle,plsql
From: https://blog.51cto.com/yuzhyn/5860705

相关文章

  • Oracle 练习P297 131026 PL/SQL块程序
    --1、编写一个PL/SQL块,输出所有员工的员工姓名,员工号、工资和部门号。begin forv_empin(select*fromemp)loop  dbms_output.put('员工......
  • Oracle plsqlI 练习 传值
    --根据人名查个人薪水和本部门平均薪水--select语句实现selecta.deptno "部门编号",    a.dname "部门名称",    a.......
  • Oracle plsql 月历
    declare v_yearnumber:=2013; v_monthnumber:=&input_month; v_daynumber; v_lastdaynumber;begin dbms_outp......
  • Oracle 练习题P256
    --根据Oracle数据库scott模式下的emp表和dept表,完成下列操作。--(1)查询20号部门的所有员工信息select*fromempwheredeptno=20;--(2)查询所......
  • Oracle 创建表 练习题
     a)      建立下列教学管理用的数据表。注意,表名和字段名都是英文。学生表(student)字段名称数据类型约束学号S_NOCHAR(6)主键姓名......
  • Oracle 练习作业10.1-1-2
    --一、现有学生表student,班级表classInfo,表结构如下:--student表:sid学号,sname姓名,sex性别,birthday生日,age入学年龄,smoney缴费,cid班级ID--classInfo表:班级编......
  • Oracle注册表修改 乱码编码
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0"NLS_LANG"值改为"SIMPLIFIEDCHINESE_CHINA.ZHS16GBK"AMERICAN.AL32UTF8乱码更改o......
  • Oracle笔记:循环及游标
    循环及退出循环:--while--初值while条件loop循环体;循环变量的变化;endloop;--breakif条件thenexit;endif;--continue<<label>>....if条件thengotolabel;end......
  • Oracle自增序列
     SQLServer中数据库可以自增字段,但是Oracle中没有这个选项,实际应用中我们可以使用序列(Sequence)实现想要的功能。创建Sequence语法如下:CREATE......
  • Oracle创建用户和授权
    在OracleXE中创建scott用户1、打开SQL*Plus,以sys用户登录数据库connect/assysdba2、依次执行下面命令--DROPUSERscottCASCADE;CRE......