a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 145|回复: 2

[其他] Oracle认证:Oracle数据库中时间的处理

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
 4824小时的形式显示出来要用HH24   select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;$ }/ |( N! K5 `# p# e7 \
  select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;3 g9 A8 j$ S* M! {; I
  to_date() function
/ r# e8 I( \; ]* K5 k1 _& g: J8 k) u  1.日期名目参数 寄义声名% L7 [1 h! C! _0 g$ ^& x& q5 J- I
  D 一周中的礼拜几
. q% H; o: }2 o' e, b  DAY 天的名字,使用空格填充到9个字符
' a) \0 b3 U' ?( D8 D* q  DD 月中的第几天- _* q# P  r: w; e. c$ E3 }; c8 Z
  DDD 年中的第几天+ x$ }$ Q* R  y* _& ^
  DY 天的简写名
1 K$ T: t9 R# v6 Z5 z  C5 x  IW ISO尺度的年中的第几周0 H( ^3 \/ C6 @
  IYYY ISO尺度的四位年份
1 ?3 j9 _7 P2 c6 ?$ ]' c  YYYY 四位年份( c+ O- O2 o' f- g. i) g# a, `
  YYY,YY,Y 年份的最后三位,两位,一位1 w* q( r  c& H7 s
  HH 小时,按12小时计
/ T6 o, o  X3 S5 p- M  HH24 小时,按24小时计
5 |4 _3 H1 A! {( E9 m  MI 分8 a. E2 u4 M1 g+ Q5 G  z
  SS 秒
0 W/ G# y' X$ {) M$ Y# l  MM 月+ p# k' o2 p: E# ?  C
  Mon 月份的简写; z# e. a3 T" r/ L% B
  Month 月份的全名6 N  s. r8 |$ i* V' U
  W 该月的第几个礼拜  D* @5 _5 J- N* X* ]/ c
  WW 年中的第几个礼拜     1.日期侍旧肃离操作
& j' F1 u1 e# m! E8 M" U  当前时刻减去7分钟的时刻
8 c1 R+ I& c( a) l+ }$ w8 G  select sysdate,sysdate - interval '7' MINUTE from dual; x/ `+ {. O. N0 E  d* s
  当前时刻减去7小时的时刻" r7 q8 ]) K1 d4 I, N1 T* m1 G; ]
- \, O! n2 R) c8 g) P1 m: O: d
  select sysdate - interval '7' hour from dual
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:07 | 显示全部楼层

Oracle认证:Oracle数据库中时间的处理

</p>  当前时刻减去7天的时刻9 v( T8 t8 T0 }. l# n4 M
  select sysdate - interval '7' day from dual  m. ^) n0 B5 z/ f
  当前时刻减去7月的时刻* n/ v4 b: J. j- l* h+ F& e
  select sysdate,sysdate - interval '7' month from dual+ ~. c4 L1 A9 e4 _( }0 R5 ~
  当前时刻减去7年的时刻
; n5 t' t; y1 ?! A* V0 W2 S  select sysdate,sysdate - interval '7' year from dual
# Y& j! u. j4 j0 R& C% J3 d0 M  侍旧肃离乘以一个数字# n$ g3 F( O& d4 p2 n' {9 o, L
  select sysdate,sysdate - 8 *interval '2' hour from dual
9 w7 W% g4 r3 s+ m* i$ {: c# l  2.日期到字符操作) l0 u# g7 p3 L, H! D, |$ u
  select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual) k, ~4 h$ x! M: S
  select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual
' A3 \- [# e4 m5 d  E- l  select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual# o( A' [: Z" M) n% r* C8 A
  select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual3 `; c/ ]8 G/ I( w$ {% ^; T3 _
  参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
* Q/ V" ~( o2 O* ]/ V7 s% {  3. 字符到日期操作5 w5 @: i6 U2 m  y2 f8 j: S3 C
  select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual; \& I: l5 i  O8 o; c6 \7 E
  具体用法和膳缦沔的to_char差不多。
$ g+ X4 }( N; t3 M* p4 q/ @  4. trunk/ ROUND函数的使用8 h3 |8 R  H. s2 r& N  Q, R
  select trunc(sysdate ,'YEAR') from dual
( C  ^! F! R' U  select trunc(sysdate ) from dual$ N# j! G5 [7 V8 u' l' w) i8 T
  select to_char(trunc(sysdate ,'YYYY'),'YYYY') from dual- R; P2 V9 }* ?; j# u9 n# I) u
  5.oracle有毫秒级的数据类型- C5 Z" S7 h  U4 ]& v/ A) X6 n" ^
  --返回当前时刻 年月日小时分秒毫秒. M* L; C2 R4 G" G% s
  select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual;
1 J- d: p' U9 `7 j: y# x: a  --返回当前 时刻的秒毫秒,可以指定秒后面的精度(最年夜=9)& P/ a* p' ]# J5 ^0 U$ N
  select to_char(current_timestamp(9),'MI:SSxFF') from dual;
& L, h) B2 b: w  6.计较轨范运行的时刻(ms)+ ~$ O* F% A  w' L
  declare
9 x  L/ [1 p2 o/ O# @0 c  type rc is ref cursor;: \3 u+ |# l3 f" f
  l_rc rc;
" g* U2 y0 M# v& `  l_dummy all_objects.object_name%type;
$ Q' ?+ @* U4 ]7 J  l_start number default dbms_utility.get_time;7 D1 {4 ~4 Z3 C" u% G
  begin9 \2 ~# c( E$ m$ q% k! z
  for I in 1 .. 1000
0 ]6 N/ ?3 _3 A5 A8 L  loop; s8 G7 E, C" L4 L
  open l_rc for2 D$ i- d- W9 ?
  'select object_name from all_objects '||
# \: G5 h( y, f0 q8 u  'where object_id = ' || i;3 b, _6 g5 l* A" u8 L# n
  fetch l_rc into l_dummy;
3 \# D6 T; `- X7 J  close l_rc;( c2 I/ H( L/ X% G' {

* M, l6 i0 C1 n  d- d/ e6 f  end loop;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:08 | 显示全部楼层

Oracle认证:Oracle数据库中时间的处理

</p>  dbms_output.put_line# y  f: H1 O8 M
  ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||/ I$ K$ @. \+ `2 a9 \$ a- P
  ' seconds...' );  T- o+ E: t+ L
  end;
7 J" l8 k( f- N  to_char() function8 M! u* r3 j; S* g! L# d
  The following are number examples for the to_char function./ |; v% w( o& _  Y$ F  n$ m
  to_char(1210.73, '9999.9')    would return '1210.7'
: h, x# ^& ]& d: \  to_char(1210.73, '9,999.99')    would return '1,210.73'3 Y5 k2 Y+ A: d' [; B+ z" ?6 z  O9 E
  to_char(1210.73, '$9,999.00')    would return '$1,210.73'
, @- E: l  x: l+ V6 f  to_char(21, '000099')    would return '000021'
4 ]( G$ \9 l/ L: V4 f  The following is a list of valid parameters when the to_char function is used to convert a date to a string. These parameters can be used in many combinations.
  Y( |' @# Y3 s  Parameter    Explanation8 L+ C( T9 s; U0 |
  YEAR    Year, spelled out
2 d6 Z6 i- G- @' F. s1 w% d$ w' W$ N  YYYY    4-digit year
/ K! A) |  [+ g* |+ A  YYY  z8 ^9 ^* C0 \+ T6 h0 Z
  YY# Q) k" ?# v# b* }* n+ c: U, K4 c
  Y    Last 3, 2, or 1 digit(s) of year.
% u5 F6 }- v4 l  IYY
) f, w) ?5 H1 |0 K1 [4 C2 y& |  IY& w+ s, \) |; Q* j1 ]
  I    Last 3, 2, or 1 digit(s) of ISO year.
3 }6 W; S0 e& ^) A! Q  IYYY    4-digit year based on the ISO standard
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-23 01:29 , Processed in 0.699485 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表