oracle日期函数

上传人:s9****2 文档编号:512844328 上传时间:2023-12-22 格式:DOCX 页数:12 大小:41.49KB
返回 下载 相关 举报
oracle日期函数_第1页
第1页 / 共12页
oracle日期函数_第2页
第2页 / 共12页
oracle日期函数_第3页
第3页 / 共12页
oracle日期函数_第4页
第4页 / 共12页
oracle日期函数_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《oracle日期函数》由会员分享,可在线阅读,更多相关《oracle日期函数(12页珍藏版)》请在金锄头文库上搜索。

1、1、转换函数与date操作关系最大的就是两个转换函数:to_date(),to_char()to_date()作用将字符类型按一定格式转化为日期类型:具体用法:to_date(2004-11-27,yyyy-mm-dd),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。如;to_date(2004-11-2713:34:43,yyyy-mm-ddhh24:mi:ss)将得到具体的时间多种日期格式:YYYY:四位表示的年份YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪MM:0112的月份编号MONTH:九个字符表示的月份,右边用空格填补MON:三位字符的月份缩写WW:一

2、年中的星期D:星期中的第几天DD:月份中的第几天DDD:年所中的第几天DAY:九个字符表示的天的全称,右边用空格补齐HH,HH12:一天中的第几个小时,12进制表示法HH24:一天中的第几个小时,取值为0023MI:一小时中的分钟SS:一分钟中的秒SSSS:从午夜开始过去的秒数to_char():将日期转按一定格式换成字符类型SQLselectto_char(sysdate,yyyy-mm-ddhh24:mi:ss)timefromdual;TIME2004-10-0815:22:58即把当前时间按yyyy-mm-ddhh24:mi:ss格式转换成字符类型在oracle中处理日期大全TO_DA

3、TE格式Day:ddnumber12dyabbreviatedfridayspelledoutfridayddspthspelledout,ordinaltwelfthMonth:mmnumber03monabbreviatedmarmonthspelledoutmarchYear:yytwodigits98yyyyfourdigits199824小时格式下时间范围为:0:00:00-23:59:5912小时格式下时间范围为:1:00:00-12:59:59ZT日期和?函?1.日期和字符转换函数用法(to_date,to_char)2.selectto_char(to_date(222,J),

4、Jsp)fromdual显示TwoHundredTwenty-Two3.求某天是星期几selectto_char(to_date(2002-08-26,yyyy-mm-dd),day)fromdual;星期一selectto_char(to_date(2002-08-26,yyyy-mm-dd),day,NLS_DATE_LANGUAGEAmerican)fromdual;monday设置日期语言ALTERSESSIONSETNLS_DATE_LANGUAGE=AMERICAN;也可以这样TO_DATE(2002-08-26,YYYY-mm-dd,NLS_DATE_LANGUAGE=Ameri

5、can)4.两个日期间的天数selectfloor(sysdate-to_date(20020405,yyyymmdd)fromdual;5. 时间为null的用法selectid,active_datefromtable1UNIONselect1,TO_DATE(null)fromdual;注意要用TO_DATE(null)6.a_datebetweento_date(20011201,yyyymmdd)andto_date(20011231,yyyymmdd)那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。所以,当时间需要精确的时候,觉得to_char还是必

6、要的7. 日期格式冲突问题输入的格式要看你安装的ORACLE字符集的类型,比如:US7ASCII,date格式的类型就是:01-Jan-01altersystemsetNLS_DATE_LANGUAGE=AmericanaltersessionsetNLS_DATE_LANGUAGE=American或者在to_date中写selectto_char(to_date(2002-08-26,yyyy-mm-dd),day,NLS_DATE_LANGUAGE=American)fromdual;注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,可查看select*fromnls_s

7、ession_parametersselect*fromV$NLS_PARAMETERS8.selectcount(*)from(selectrownum-1rnumfromall_objectswhererownumselectsysdate,to_char(sysdate,hh)fromdual;SYSDATETO_CHAR(SYSDATE,HH)2003-10-1319:35:2107SQLselectsysdate,to_char(sysdate,hh24)fromdual;SYSDATETO_CHAR(SYSDATE,HH24)2003-10-1319:35:2119获取年月日与此类

8、似13.年月日的处理selectolder_date,newer_date,years,months,abs(trunc(newer_date-add_months(older_date,years*12+months)daysfrom(selecttrunc(months_between(newer_date,older_date)/12)YEARS,mod(trunc(months_between(newer_date,older_date),12)MONTHS,newer_date,older_datefrom(selecthiredateolder_date,add_months(hi

9、redate,rownum)+rownumnewer_datefromemp)14.处理月份天数不定的办法selectto_char(add_months(last_day(sysdate)+1,-2),yyyymmdd),last_day(sysdate)fromdual16.找出今年的天数selectadd_months(trunc(sysdate,year),12)-trunc(sysdate,year)fromdual闰年的处理方法to_char(last_day(to_date(02|:year,mmyyyy),dd)如果是28就不是闰年17.yyyy与rrrr的区别YYYY99TO

10、_Cyyyy990099rrrr991999yyyy010001rrrr01200118. 不同时区的处理selectto_char(NEW_TIME(sysdate,GMT,EST),dd/mm/yyyyhh:mi:ss),sysdatefromdual;19.5秒钟一个间隔SelectTO_DATE(FLOOR(TO_CHAR(sysdate,SSSSS)/300)300,SSSSS),TO_CHAR(sysdate,SSSSS)fromdual2002-11-19:55:0035786SSSSS表示5位秒数20.一年的第几天selectTO_CHAR(SYSDATE,DDD),sysda

11、tefromdual3102002-11-610:03:5121. 计算小时,分,秒,毫秒selectDays,A,TRUNC(A*24)Hours,TRUNC(A*24*60-60*TRUNC(A*24)Minutes,TRUNC(A*24*60*60-60*TRUNC(A*24*60)Seconds,TRUNC(A*24*60*60*100-100*TRUNC(A*24*60*60)mSecondsfrom(selecttrunc(sysdate)Days,sysdate-trunc(sysdate)Afromdual)select*fromtabnameorderbydecode(mod

12、e,FIFO,1,-1)*to_char(rq,yyyymmddhh24miss);/floor(date2-date1)/365)作为年floor(date2-date1,365)/30)作为月mod(mod(date2-date1,365),30)作为日.23.next_day函数next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。1234567日一二三四五六oracle中有很多关于日期的函数在oracle中有很多关于日期的函数,如:1 、add_months()用于从一个日期值增加或减少一些月份date_value:=add_months(date_value,number_of_months)例:SQLselectadd_m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号