当前位置: 首页 > news >正文

编写一个存储过程,输入一个日期,判定其距离年底还有多少天

--编写一个存储过程,输入一个日期,判定其距离年底还有多少天
create or replace procedure sp_end(i_date varchar2,o_end out varchar2)
is
--声明两个变量,v_end存放经过转化的年底日期,v_errm用来存放异常
v_end  date;
v_errm varchar2(50);
begin
  if length(i_date)<>8 then
    dbms_output.put_line('输入的日期格式不正确,正确的格式为:yyyymmdd');
  end if;
  /*函数解析:to_date:日期转换函数;trunc:截断函数,'yyyy'表示按年份截断,则会返回当年的1月1号;
  add_months:月份加减函数,加11到12月份;last_day:跳到当月月底函数;
  经过这几个函数的转化,则输入的日期就会变成当年的12月31日;ceil:向上取整*/
  v_end:=last_day(add_months(trunc(to_date(i_date,'yyyy-mm-dd'),'yyyy'),11));
  --用年底的日期减去输入的日期,则会返回相差的天数
  o_end:=ceil(v_end-to_date(i_date,'yyyy-mm-dd'));
  dbms_output.put_line(to_date(i_date,'yyyy-mm-dd')||'距离年底还有'||o_end||'天');
  --异常处理
  exception
    when others then
      v_errm:=sqlerrm;
      dbms_output.put_line(v_errm);
end sp_end;

--调用存储过程
declare
v_end varchar2(50);
begin
  sp_end('20230330',v_end);
end;

注:有不解的可以 留言。

http://www.lryc.cn/news/44909.html

相关文章:

  • HTB-Inject
  • java基础知识——13.类与对象
  • 北邮22信通:(10)第三章 3.2栈的实现
  • Vue3之使用js实现动画
  • 金三银四,你准备好面试了吗? (附30w字软件测试面试题总结)
  • 【C语言学习】数组
  • ElasticSearch序列 - SpringBoot整合ES:根据指定的 ids 查询
  • Spark SQL实战(08)-整合Hive
  • 堆(数据结构系列11)
  • 算法训练第四十二天|01背包问题 二维 、01背包问题 一维、416. 分割等和子集
  • Java-如何使用Java将图片和文字拼接在一起(并非是给图片加水印)
  • Metasploit入门到高级【第三章】
  • 枚举的使用
  • Python进阶语法
  • Pyspark_结构化流4
  • Linux cmp 命令
  • Python入门到高级【第五章】
  • C语言中(i++)+ (i++)真的每次都等于3吗?
  • Cursor,程序员的 AI 代码编辑助手
  • 基于XML的自动装配~
  • 完全二叉树的4种遍历方式
  • 【vue2】使用elementUI进行表单验证实操(附源码)
  • JUC之阻塞队列解读(BlockingQueue)
  • LCHub:ChatGPT4和低代码来临,程序员面临下岗?
  • 【Node.js】Express框架的基本使用
  • 使用docker 和 kubnernetes 部署单节点/多节点 kafka 环境
  • Linux使用:环境变量指南和CPU和GPU利用情况查看
  • 深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)
  • Compose(1/N) - 概念 基本使用
  • 2023高质量Java面试题集锦:高级Java工程师面试八股汇总