TO_DATE( )②

上一篇 / 下一篇  2010-07-12 15:12:36 / 个人分类:ORACLE

51Testing软件测试网QUF{ s2\1\

1.日期和字符转换函数用法(to_date,to_char)51Testing软件测试网1_ X kY;_ I+F#m

51Testing软件测试网Ifa-T$Y

2.select to_char( to_date(222,'J'),'Jsp') from dual;   51Testing软件测试网 U\@ _JmO&}fMz
  显示Two Hundred Twenty-Two 51Testing软件测试网7_;F|I*R[U;[ l0n

51Testing软件测试网g fQs:g+B'h6y

3.求某天是星期几 51Testing软件测试网Fs.bH)bB E5t|
  select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 51Testing软件测试网 q9\4[G O_x
  星期一
1}\[i4}6z6~2Q#D0  select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; 51Testing软件测试网3Y8Ot4BrH M
  monday 51Testing软件测试网h;xk(a_%^d
  设置日期语言 51Testing软件测试网+Q-lnF_'Vg
  ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
]-x#mA,J0  也可以这样 51Testing软件测试网 K+^4X:fRQ.i
  TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')

`/^K0vkp!Ch,c0 51Testing软件测试网9\K9v)Q4g

4.两个日期间的天数
U!| x7T(P0  select floor(sysdate - to_date('20020405','yyyymmdd')) from dual; 51Testing软件测试网-svvzT*r

51Testing软件测试网q(YS:PV)ey

5.时间为null的用法 51Testing软件测试网 Ow/H/D:sNL6D*s9O
  select id, active_date from table1 51Testing软件测试网/A O Qb#^B1T
   UNION
t0jZ5qw0b/~ ?}0  select 1, TO_DATE(null) from dual;    
d0A^)k&Vu*W0  注意要用TO_DATE(null)

j)f9q*M"CLX5^U0

jsW6sO;? `2D06.a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd') 51Testing软件测试网cG%TR)h8a+p B*d9Wyu3y
  那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的. 51Testing软件测试网;c3_]Uze
  所以,当时间需要精确的时候,觉得to_char还是必要的
'hs8gNE W t,ek07.日期格式冲突问题 51Testing软件测试网{5dN,]G2]8@7i
  输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'
8o~'O,ENM0  alter system set NLS_DATE_LANGUAGE = American;
2L2SC:FP'XRqi0  alter session set NLS_DATE_LANGUAGE = American;51Testing软件测试网!?/XY5SL(@b
  或者在to_date中写 51Testing软件测试网Tnn-\[9x*jo^a?
  select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
m*gd%YUZ:C0  注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,可查看 51Testing软件测试网4l&qsp,_
  select * from nls_session_parameters; 51Testing软件测试网K)D0UUZl(|o
  select * from V$NLS_PARAMETERS;51Testing软件测试网F`j$["~8E2j4H u

bd&i0Vea-]sV08. select count(*) 51Testing软件测试网lVbF(J[-X2xUo
  from ( select rownum-1 rnum from all_objects 51Testing软件测试网#Ly*T'R H7?D"K"H5e
   where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-02-01','yyyy-mm-dd')+1) where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D') not in ( '1', '7' ) 51Testing软件测试网/KQ#\+P _(s
   51Testing软件测试网k"x0H0E[] gRW6m%WR
  查找2002-02-28至2002-02-01间除星期一和七的天数 51Testing软件测试网O[d'F+i!g.R
  在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).  

kp C"lN8pn0 51Testing软件测试网@ ~ }3v P:[d

9. select months_between(to_date('01-31-1999','MM-DD-YYYY'),
,rla6?1eu0   to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL; 51Testing软件测试网Yc!`7p5lTG8}'BeF
  1 51Testing软件测试网o7}B3V zV
  
Lm~$i2o s S4L0  select months_between(to_date('02-01-1999','MM-DD-YYYY'), 51Testing软件测试网*F:G+M a*L9kW
   to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;    51Testing软件测试网v:LGx$x6xY^
  1.032258064516151Testing软件测试网#y-E:b0LA*qO*h


TAG:

 

评分:0

我来说两句

Open Toolbar