欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    PLSQL常用时间函数Word文档下载推荐.docx

    • 资源ID:18884050       资源大小:20.16KB        全文页数:17页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    PLSQL常用时间函数Word文档下载推荐.docx

    1、命名的,在变量d指定的日期之后的第一个工作日的日期。参数必须为该星期中的某一天。 SELECT next_day(to_date(20050620YYYYMMDD),1) FROM dual;NEXT_DAY(T26-6月 -056。current_date()返回当前会话时区中的当前日期=current_date column sessiontimezone for a15 select sessiontimezone,current_date from dual;SESSIONTIMEZONE CURRENT_DA- -+08:00 13-11月-03 alter session set

    2、time_zone=-11:00 2 /会话已更改。 select sessiontimezone,current_timestamp from dual;SESSIONTIMEZONE CURRENT_TIMESTAMP- -00 12-11月-03 04.59.13.668000 下午 -11:007。current_timestamp()以timestamp with time zone数据类型返回当前会话时区中的当前日期 select current_timestamp from dual;CURRENT_TIMESTAMP-21-6月 -05 10.13.08.220589 上午 +

    3、08:008。dbtimezone()返回时区 select dbtimezone from dual;DBTIME-08:9。extract()找出日期或间隔值的字段值=extract(date_field from datetime_value|interval_value) select extract(month from sysdate) This Month from dual;This Month6 select extract(year from add_months(sysdate,36) YearsYears200810。localtimestamp()返回会话中的日期和时

    4、间 select localtimestamp from dual;LOCALTIMESTAMP21-6月 -05 10.18.15.855652 上午常用日期数据格式(该段为摘抄)Y或YY或YYY 年的最后一位,两位或三位 Select to_char(sysdate,YYY) from dual; 002表示2002年SYEAR或YEAR SYEAR使公元前的年份前加一负号 Select to_char(sysdate,SYEAR) from dual; -1112表示公元前111 2年Q 季度,13月为第一季度 Select to_char(sysdate,Q) from dual; 2

    5、表示第二季度MM 月份数 Select to_char(sysdate,MM) from dual; 12表示12月RM 月份的罗马表示 Select to_char(sysdate,RM) from dual; IV表示4月Month 用9个字符长度表示的月份名 Select to_char(sysdate,Month) from dual; May后跟6个空格表示5月WW 当年第几周 Select to_char(sysdate,WW) from dual; 24表示2002年6月13日为第24周W 本月第几周 Select to_char(sysdate,W) from dual; 20

    6、02年10月1日为第1周DDD 当年第几, 1月1日为001,2月1日为032 Select to_char(sysdate,DDD) from dual; 363 2002年1 2月2 9日为第363天DD 当月第几天 Select to_char(sysdate,DD) from dual; 04 10月4日为第4天D 周内第几天 Select to_char(sysdate,D) from dual; 5 2002年3月14日为星期一DY 周内第几天缩写 Select to_char(sysdate,DY) from dual; SUN 2002年3月24日为星期天HH或HH12 12进

    7、制小时数 Select to_char(sysdate,HH) from dual; 02 午夜2点过8分为02HH24 24小时制 Select to_char(sysdate,HH24) from dual; 14 下午2点08分为14MI 分钟数(059) Select to_char(sysdate,MI) from dual; 17下午4点17分SS 秒数(059) Select to_char(sysdate,SS) from dual; 22 11点3分22秒提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。现在给出一

    8、些实践后的用法:上月末天: select to_char(add_months(last_day(sysdate),-1),yyyy-MM-dd) LastDay from dual;LASTDAY2005-05-31上月今天 select to_char(add_months(sysdate,-1),) PreToday from dual;PRETODAY2005-05-213.上月首天 select to_char(add_months(last_day(sysdate)+1,-2),) firstDay from dual;FIRSTDAY2005-05-014.按照每周进行统计 se

    9、lect to_char(sysdate,ww) from dual group by to_char(sysdate,);TO-25按照每月进行统计mm06按照每季度进行统计qT-2按照每年进行统计yyyyTO_C-20058.要找到某月中所有周五的具体日期select to_char(t.d,YY-MM-DD) from (select trunc(sysdate, MM)+rownum-1 as dfrom dba_objectswhere rownum 32) twhere to_char(t.d, ) = to_char(sysdate, ) -找出当前月份的周五的日期and tri

    10、m(to_char(t.d, Day) = 星期五-03-05-0203-05-0903-05-1603-05-2303-05-30如果把where to_char(t.d, )改成sysdate-90,即为查找当前月份的前三个月中的每周五的日期。9.oracle中时间运算内容如下:1、oracle支持对日期进行运算2、日期运算时是以天为单位进行的3、当需要以分秒等更小的单位算值时,按时间进制进行转换即可4、进行时间进制转换时注意加括号,否则会出问题 alter session set nls_date_format=yyyy-mm-dd hh:mi:ss; set serverout on

    11、declare2 DateValue date;3 begin4 select sysdate into DateValue from dual;5 dbms_output.put_line(源时间:|to_char(DateValue);6 dbms_output.put_line(源时间减1天:|to_char(DateValue-1);7 dbms_output.put_line(源时间减1天1小时:|to_char(DateValue-1-1/24);8 dbms_output.put_line(源时间减1天1小时1分:|to_char(DateValue-1-1/24-1/(24*6

    12、0);9 dbms_output.put_line(源时间减1天1小时1分1秒:|to_char(DateValue-1-1/24-1/(24*60)-1/(24*60*60);10 end;11 /2003-12-29 11:53:412003-12-28 11:2003-12-28 10:52:40PL/SQL 过程已成功完成。在Oracle中实现时间相加处理- 名称:Add_Times- 功能:返回d1与NewTime相加以后的结果,实现时间的相加- 说明:对于NewTime中的日期不予考虑- 日期:2004-12-07- 版本:1.0- 作者:Kevincreate or replac

    13、e function Add_Times(d1 in date,NewTime in date) return dateishh number;mm number;ss number;hours number;dResult date;begin- 下面依次取出时、分、秒select to_number(to_char(NewTime,HH24) into hh from dual;MI) into mm from dual;SS) into ss from dual;- 换算出NewTime中小时总和,在一天的百分几hours := (hh + (mm / 60) + (ss / 3600)

    14、/ 24;- 得出时间相加后的结果select d1 + hours into dResult from dual;return(dResult);end Add_Times;- 测试用例- select Add_Times(sysdate,to_date(2004-12-06 03:23:YYYY-MM-DD HH24:MI:) from dual在Oracle9i中计算时间差计算时间差是Oracle DATA数据类型的一个常见问题。Oracle支持日期计算,你可以创建诸如“日期1日期2”这样的表达式来计算这两个日期之间的时间差。一旦你发现了时间差异,你可以使用简单的技巧来以天、小时、分钟或

    15、者秒为单位来计算时间差。为了得到数据差,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。使用完善复杂的转换函数来转换日期是一个诱惑,但是你会发现这不是最好的解决方法。round(to_number(end-date-start_date)- 消逝的时间(以天为单位)round(to_number(end-date-start_date)*24)- 消逝的时间(以小时为单位)round(to_number(end-date-start_date)*1440)- 消逝的时间(以分钟为单位)显示时间差的默认模式是什么?为了找到这个问题的答案,让我们进行一个简单的SQL *Plus查询。 s

    16、elect sysdate-(sysdate-3) from dual;SYSDATE-(SYSDATE-3)-3这里,我们看到了Oracle使用天来作为消逝时间的单位,所以我们可以很容易的使用转换函数来把它转换成小时或者分钟。然而,当分钟数不是一个整数时,我们就会遇到放置小数点的问题。Select(sysdate-(sysdate-3.111)*1440fromdual;(SYSDATE-(SYSDATE-3.111)*1440-4479.83333当然,我们可以用ROUND函数(即取整函数)来解决这个问题,但是要记住我们必须首先把DATE数据类型转换成NUMBER数据类型。round(to

    17、_number(sysdate-(sysdate-3.111)*1440)ROUND(TO_NUMBER(SYSDATE-(SYSDATE-3.111)*1440)-4480我们可以用这些函数把一个消逝时间近似转换成分钟并把这个值写入Oracle表格中。在这个例子里,我们有一个离线(logoff)系统级触发机制来计算已经开始的会话时间并把它放入一个Oracle STATSPACK USER_LOG扩展表格之中。Updateperfstat.stats$user_logsetelapsed_minutes =round(to_number(logoff_time-logon_time)*1440

    18、)whereuser = user_idandelapsed_minutes is NULL;查出任一年月所含的工作日CREATE OR REPLACE FUNCTION Get_WorkingDays(ny IN VARCHAR2) RETURN INTEGER IS/*-函数名称:Get_WorkingDays中文名称:求某一年月中共有多少工作日作者姓名: XINGPING编写时间: 2004-05-22输入参数:NY:所求包含工作日数的年月,格式为yyyymm,如200405返 回 值:整型值,包含的工作日数目。算法描述:1).列举出参数给出的年月中的每一天。这里使用了一个表(ljrq是

    19、我的库中的一张表。这个表可以是有权访问的、记录条数至少为31的任意一张表或视图)来构造出某年月的每一天。2).用这些日期和一个已知星期几的日期相减(2001-12-30是星期天),所得的差再对7求模。如果所求年月在2001-12-30以前,那么所得的差既是负数,求模后所得值范围为大于-6,小于0,如-1表示星期六,故先将求模的结果加7,再求7的模.3).过滤掉结果集中值为0和6的元素,然后求count,所得即为工作日数目。-*/Result INTEGER;BEGINSELECT COUNT(*) INTO ResultFROM (SELECT MOD(MOD(q.rq-to_date(200

    20、1-12-30),7),7) weekdayFROM ( SELECT to_date(ny|t.dd,yyyymmdd) rqFROM (SELECT substr(100+ROWNUM,2,2) ddFROM ljrq z WHERE Rownum=31) tWHERE to_date(ny|t.dd,)BETWEEN to_date(ny,yyyymmAND last_day(to_date(ny,)q) aWHERE a.weekday NOT IN(0,6);RETURN Result;END Get_WorkingDays;_还有一个版本/*- 2004-05-23使用Last_day函数计算出参数所给年月共包含多少天,根据这个值来构造一个循环。在这个循环中先求这个月的每一天与一个已知是星期天的日期(2001-12-30是星期天)的差,所得的差再对7求模。如果所求日期在2001-12-30以前,那么所得的差既是负数,求模后所得值范围为大于-6,小于0,如-1表示星期六,故先将求模的结果加7,再求7的模. 如过所得值不等于0和6(即不是星期六和星期天),则算


    注意事项

    本文(PLSQL常用时间函数Word文档下载推荐.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开