Oracle的to_date函数

上传人:油条 文档编号:11041537 上传时间:2017-10-11 格式:DOC 页数:10 大小:103.50KB
返回 下载 相关 举报
Oracle的to_date函数_第1页
第1页 / 共10页
Oracle的to_date函数_第2页
第2页 / 共10页
Oracle的to_date函数_第3页
第3页 / 共10页
Oracle的to_date函数_第4页
第4页 / 共10页
Oracle的to_date函数_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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

1、0Oracle 的 to_date 函数日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到 9 个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO 标准的年中的第几周 IYYY ISO 标准的四位年份 YYYY 四位年份 YYY,YY,Y 年份的最后三位,两位,一位 HH 小时,按 12 小时计 HH24 小时,按 24 小时计 MI 分 SS 秒 MM 月 Mon 月份的简写 注:在不同的语言下显示出来的数据不同,在中文下显示为 5 月,在英文下显示为 MAY Month 月份的全名 W 该月的第几个星期 WW 年中的第几个星期 1.日

2、期时间间隔操作 当前时间减去 7 分钟的时间 select sysdate,sysdate - interval 7 MINUTE from dual 当前时间减去 7 小时的时间 select sysdate - interval 7 hour from dual 当前时间减去 7 天的时间 select sysdate - interval 7 day from dual 当前时间减去 7 月的时间 select sysdate,sysdate - interval 7 month from dual 当前时间减去 7 年的时间 select sysdate,sysdate - inter

3、val 7 year from dual 时间间隔乘以一个数字 select sysdate,sysdate - 8 *interval 2 hour from dual 2.日期到字符操作 select sysdate,to_char(sysdate,yyyy-mm-dd hh24:mi:ss) from dual select sysdate,to_char(sysdate,yyyy-mm-dd hh:mi:ss) from dual select sysdate,to_char(sysdate,yyyy-ddd hh:mi:ss) from dual select sysdate,to_

4、char(sysdate,yyyy-mm iw-d hh:mi:ss) from dual 参考 oracle 的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515) 13. 字符到日期操作 select to_date(2003-10-17 21:15:37,yyyy-mm-dd hh24:mi:ss) from dual 具体用法和上面的 to_char 差不多。 4. trunk/ ROUND 函数的使用 select trunc(sysdate ,YEAR) from dual select trunc(sysdat

5、e ) from dual select to_char(trunc(sysdate ,YYYY),YYYY) from dual 5.oracle 有毫秒级的数据类型 -返回当前时间 年月日小时分秒毫秒 select to_char(current_timestamp(5),DD-MON-YYYY HH24:MI:SSxFF) from dual; -返回当前 时间的秒毫秒,可以指定秒后面的精度(最大=9) select to_char(current_timestamp(9),MI:SSxFF) from dual; 6.计算程序运行的时间(ms) declare type rc is r

6、ef cursor; l_rc rc; l_dummy all_objects.object_name%type; l_start number default dbms_utility.get_time; begin for I in 1 . 1000 loop open l_rc for select object_name from all_objects | where object_id = | i; fetch l_rc into l_dummy; close l_rc; end loop; dbms_output.put_line ( round( (dbms_utility.g

7、et_time-l_start)/100, 2 ) | seconds. ); end; = 1.日期和字符转换函数用法(to_date,to_char) 2.select to_char( to_date(222,J),Jsp) from dual (这个经典.) 显示 Two Hundred Twenty-Two 3.求某天是星期几 select to_char(to_date(2002-08-26,yyyy-mm-dd),day) from dual; 星期一 select to_char(to_date(2002-08-26,yyyy-mm-dd),day,NLS_DATE_LANGU

8、AGE = American) from dual; monday 设置日期语言 ALTER SESSION SET NLS_DATE_LANGUAGE=AMERICAN; 2也可以这样 TO_DATE (2002-08-26, YYYY-mm-dd, NLS_DATE_LANGUAGE = American) 4.两个日期间的天数 select floor(sysdate - to_date(20020405,yyyymmdd) from dual; 5.时间为 null 的用法 select id, active_date from table1 UNION select 1, TO_DA

9、TE(null) from dual; 注意要用 TO_DATE(null) 6.a_date between to_date(20011201,yyyymmdd) and to_date(20011231,yyyymmdd) 那么 12 月 31 号中午 12 点之后和 12 月 1 号的 12 点之前是不包含在这个范围之内的。 所以,当时间需要精确的时候,觉得 to_char 还是必要的 7. 日期格式冲突问题 输入的格式要看你安装的 ORACLE 字符集的类型, 比如: US7ASCII, date 格式的类型就是: 01-Jan-01 alter system set NLS_DATE

10、_LANGUAGE = American alter session set NLS_DATE_LANGUAGE = American 或者在 to_date 中写 select to_char(to_date(2002-08-26,yyyy-mm-dd),day,NLS_DATE_LANGUAGE = American) from dual; 注意我这只是举了 NLS_DATE_LANGUAGE,当然还有很多, 可查看 select * from nls_session_parameters select * from V$NLS_PARAMETERS 8. select count(*)

11、from ( select rownum-1 rnum from all_objects where rownum select sysdate ,to_char(sysdate,hh) from dual; SYSDATE TO_CHAR(SYSDATE,HH) - - 2003-10-13 19:35:21 07 SQL select sysdate ,to_char(sysdate,hh24) from dual; SYSDATE TO_CHAR(SYSDATE,HH24) - - 2003-10-13 19:35:21 19 获取年月日与此类似 13.年月日的处理 select old

12、er_date, newer_date, years, months, abs( trunc( newer_date- add_months( older_date,years*12+months ) ) ) days from ( select trunc(months_between( newer_date, older_date )/12) YEARS, mod(trunc(months_between( newer_date, older_date ), 12 ) MONTHS, newer_date, older_date from ( select hiredate older_d

13、ate, add_months(hiredate,rownum)+rownum newer_date from emp ) ) 14.处理月份天数不定的办法 select to_char(add_months(last_day(sysdate) +1, -2), yyyymmdd),last_day(sysdate) from dual 15.找出今年的天数 select add_months(trunc(sysdate,year), 12) - trunc(sysdate,year) from dual 闰年的处理方法 to_char( last_day( to_date(02 | :yea

14、r,mmyyyy) ), dd ) 4如果是 28 就不是闰年 16.yyyy 与 rrrr 的区别 YYYY99 TO_C - - yyyy 99 0099 rrrr 99 1999 yyyy 01 0001 rrrr 01 2001 17.不同时区的处理 select to_char( NEW_TIME( sysdate, GMT,EST), dd/mm/yyyy hh:mi:ss) ,sysdate from dual; 18. 5 秒钟一个间隔 Select TO_DATE(FLOOR(TO_CHAR(sysdate,SSSSS)/300) * 300,SSSSS) ,TO_CHAR(sysdate,SSSSS) from dual 2002-11-1 9:55:00 35786 SSSSS 表示 5 位秒数 19.一年的第几天 select TO_CHAR(SYSDATE,DDD),sysdate from dual 310 2002-11-6 10:03:51 20.计算小时,分,秒,毫秒 select Days, 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(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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