资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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:一年中的星期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_DATE格式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),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=American)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还是必要的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_session_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获取年月日与此类似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(hiredate,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_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),sysdatefromdual3102002-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(mode,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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号