a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 155|回复: 2

[考试辅导] Oracle技术:Oracle和SQLServer常用函数对比分析(2)

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
 26.子串全部替换   S:没发现1 o' {$ A& `- x7 n$ M
  O:select Translate('fasdbfasegas','fa','我' ) value from dual# p# [( e$ J& e: I
  27.长度
0 ~# r0 r' h3 Z) [* e9 \1 T3 l: E  S:len,datalength  C/ W; @( P5 k! |
  O:length
) ]" G9 K$ ~7 B5 f* M1 J! W2 c  28.大小写转换 lower,upper1 o6 l) h5 _6 J! O0 f1 R3 t& C0 V9 k
  29.单词首字母大写
: @$ }, k2 v# I) K  S:没发现
4 \& o1 Y( D5 B2 i  O:select INITCAP('abcd dsaf df') value from dual
. v9 \6 d; I0 W3 O+ r1 {  30.左补空格(LPAD的第一个参数为空格则同space函数)8 T, @& x% m+ d" d. n+ s' \* f
  S:select space(10)+'abcd' value+ I  h/ J# l. h* z; _
  O:select LPAD('abcd',14) value from dual
  f" @; M' Y6 h6 \: [% H  31.右补空格(RPAD的第一个参数为空格则同space函数)( B9 U5 G5 r* K" x* |$ X4 m# [- M
  S:select 'abcd'+space(10) value
) p. W5 o8 w  n/ Q  O:select RPAD('abcd',14) value from dual/ \4 G0 `' z7 H' H; X3 t9 h8 S5 O
  32.删除空格
5 e8 z0 H1 `4 G4 C1 J/ o# C  S:ltrim,rtrim
; q, T" V' d( b- Q& g  O:ltrim,rtrim,trim, Y1 T4 o6 Y7 q# ^& h( C+ _% l
  33. 重复字符串( Y; X0 z5 w* n
  S:select REPLICATE('abcd',2) value. \# v' B9 |8 P3 Y  K2 P' @
  O:没发现. p* `: F( q* [9 n1 u; C$ o  X
  34.发音相似性比较(这两个单词返回值一样,发音相同)
: i" d5 M/ M0 n7 |! N! U7 P  S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
6 ?  o( j* m" V; y" L' g( S2 x  O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual# p; a( y5 f0 E$ K7 B7 \) T
  SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差1 u$ s8 M5 a! C5 X# ^

2 E! K6 W1 E7 u' a$ Q6 m  返回0-4,4为同音,1最高
回复

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:20 | 显示全部楼层

Oracle技术:Oracle和SQLServer常用函数对比分析(2)

</p>  日期函数
+ Y  O6 K% g' a  35.系统时间- z+ j/ \$ {% t, f
  S:select getdate() value
/ ^- u+ v% s( h$ `8 K* {  O:select sysdate value from dual
: P' F* w- k* k8 w) y2 L6 x  36.前后几日( O7 `% B& |! B, U; u# A
  直接与整数相加减
& \7 P; [% B/ Q  37.求日期
# a  {( N9 N7 c: u  S:select convert(char(10),getdate(),20) value
; X" b" j& w' l7 G9 E8 d  O:select trunc(sysdate) value from dual
' V( M: m) O* c$ S" @  select to_char(sysdate,'yyyy-mm-dd') value from dual) x, @9 D* J! J7 x5 V7 [% M$ M+ y
  38.求时间
$ |; L4 W% G% G0 j  S:select convert(char(8),getdate(),108) value
3 i1 r; j8 N7 }$ R* C* I  O:select to_char(sysdate,'hh24:mm:ss') value from dual! x- k/ O; P: v. a' I
  39.取日期时间的其他部分
+ @  D! v6 s  }) ?. n  S:DATEPART 和 DATENAME 函数 (第一个参数决定)/ E* v. I/ M: U/ ~; P
  O:to_char函数 第二个参数决定0 |- {' Q- X+ W1 s5 J
  参数---------------------------------下表需要补充
+ z3 b# J! a- i8 `; e  year yy, yyyy' F3 J7 E8 p! F0 e0 P$ P% C- |
  quarter qq, q (季度)  ~2 ]% N# g0 D6 j, F. E$ S
  month mm, m (m O无效)
. j' N8 a$ w( ?0 l  dayofyear dy, y (O表星期)5 `" ^- d" R  M( P$ f
  day dd, d (d O无效)( \* T' g/ }. o7 |$ ]# g( U
  week wk, ww (wk O无效)
7 K  f) Q8 M* h* b1 O& P5 \  weekday dw (O不清楚)
% R6 u0 O, T& c( ]  Hour hh,hh12,hh24 (hh12,hh24 S无效)
9 z. u- e* \; a  J7 q) s2 s  minute mi, n (n O无效)
( x0 `4 R' A) Z- n! {  second ss, s (s O无效)6 F) _; M2 q1 g
  millisecond ms (O无效)  b3 H1 W! C* R! g6 R
  ----------------------------------------------2 ^: a2 P0 v6 Q! S: B% v8 E* d6 G
  40.当月最后一天0 @1 b, U* |3 I3 x
  S:不知道
& o( d8 x4 A# u  O:select LAST_DAY(sysdate) value from dual
* j4 l4 R! K  [) x  41.本星期的某一天(比如星期日)
+ R4 F- q* ~( D' R4 r  S:不知道$ K# h" ~$ |/ I2 h8 [7 }

8 R& ?) h2 q* ?+ `' n  O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:21 | 显示全部楼层

Oracle技术:Oracle和SQLServer常用函数对比分析(2)

</p>  42.字符串转时间) P1 G) R8 `9 |3 ~1 Z
  S:可以直接转或者select cast('2004-09-08'as datetime) value! o% `: U, ~* d: G( I. r- _
  O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
+ X9 D- ~0 V( Q. x5 Y  43.求两日期某一部分的差(比如秒)
  d- ]; n; Y! g  S:select datediff(ss,getdate(),getdate()+12.3) value" I1 C% @) _; P6 B8 T
  O:直接用两个日期相减(比如d1-d2=12.3)
' f0 c2 M  y7 F$ g! O  SELECT (d1-d2)*24*60*60 vaule FROM DUAL;$ u4 q/ T1 q% m7 F2 b
  44.根据差值求新的日期(比如分钟)3 k' o. Y% q: _* g2 b$ ]
  S:select dateadd(mi,8,getdate()) value5 N# s: J$ ?3 S8 e. n4 r; _8 M
  O:SELECT sysdate+8/60/24 vaule FROM DUAL;+ j9 m9 t) l0 B, U
  45.求不同时区时间
, M: B) |6 [9 ~+ c' {/ d' f& U  S:不知道
$ b/ G/ ~8 ]& L  Y; ?7 q  O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
6 a! _5 ?0 N9 ~2 {% N, @  R0 L, m  -----时区参数,北京在东8区应该是Ydt-------
+ G3 R0 G6 k; }8 K6 v  AST ADT 大西洋标准时间, G7 D! X7 i" U) c( M0 t6 C+ u/ i) Q* T
  BST BDT 白令海标准时间: i& @. L4 k- R
  CST CDT 中部标准时间
5 E" @+ T# \* D. H! d  EST EDT 东部标准时间
, U% a2 ~  [2 C1 n& w6 G  GMT 格林尼治标准时间
: W& L3 t4 x: ]! z  HST HDT 阿拉斯加?夏威夷标准时间
+ g5 X' [' f& e3 d  MST MDT 山区标准时间1 ?- c8 {; V# T7 C# P) |1 |5 N
  NST 纽芬兰标准时间
+ I; {' m. t0 b' X  PST PDT 太平洋标准时间
% j6 |$ `0 \( [$ D0 [  YST YDT YUKON标准时间
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 23:26 , Processed in 0.155377 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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