数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL Server和Oracle的常用函数对比


发布日期:2019年12月25日
 
SQL Server和Oracle的常用函数对比

数学函数

绝对值

S:select abs() value

O:select abs() value from dual

取整(大)

S:select ceiling() value

O:select ceil() value from dual

取整(小)

S:select floor() value

O:select floor() value from dual

取整(截取)

S:select cast( as int) value

O:select trunc() value from dual

四捨五入

S:select round() value

O:select round() value from dual

e为底的幂

S:select Exp() value

O:select Exp() value from dual

取e为底的对数

S:select log() value

O:select ln() value from dual;

为底对数

S:select log() value

O:select log() value from dual;

取平方

S:select SQUARE() value

O:select power() value from dual

取平方根

S:select SQRT() value

O:select SQRT() value from dual

求任意数为底的幂

S:select power() value

O:select power() value from dual

取随机数

S:select rand() value

O:select sysdbms_randomvalue() value from dual;

取符号

S:select sign() value

O:select sign() value from dual

数学函数

圆周率

S:SELECT PI() value

O:不知道

sincostan 参数都以弧度为单位

例如select sin(PI()/) value 得到(SQLServer)

AsinAcosAtanAtan 返回弧度

弧度角度互换(SQLServerOracle不知道)

DEGREES弧度〉角度

RADIANS角度〉弧度

数值间比较

求集合最大值

S:select max(value) value from

(select value

union

select value

union

select value

union

select value)a

O:select greatest() value from dual

求集合最小值

S:select min(value) value from

(select value

union

select value

union

select value

union

select value)a

O:select least() value from dual

如何处理null值(F中的null以代替)

S:select FIsNull(F) value from Tbl

O:select Fnvl(F) value from Tbl

数值间比较

求字符序号

S:select ascii(a) value

O:select ascii(a) value from dual

从序号求字符

S:select char() value

O:select chr() value from dual

连接

S:select ++ value

O:select CONCAT()|| value from dual

子串位置 返回

S:select CHARINDEX(ssdsq) value

O:select INSTR(sdsqs) value from dual

模糊子串的位置 返回参数去掉中间%则返回

S:select patindex(%d%q%sdsfasdqe) value

O:oracle没发现但是instr可以通过第四霾问刂瞥鱿执问?BR>select INSTR(sdsfasdqesd) value from dual 返回

求子串

S:select substring(abcd) value

O:select substr(abcd) value from dual

子串代替 返回aijklmnef

S:SELECT STUFF(abcdef ijklmn) value

O:SELECT Replace(abcdef bcd ijklmn) value from dual

子串全部替换

S:没发现

O:select Translate(fasdbfasegasfa ) value from dual

长度

S:lendatalength

O:length

大小写转换 lowerupper

单词首字母大写

S:没发现

O:select INITCAP(abcd dsaf df) value from dual

左补空格(LPAD的第一个参数为空格则同space函数)

S:select space()+abcd value

O:select LPAD(abcd) value from dual

右补空格(RPAD的第一个参数为空格则同space函数)

S:select abcd+space() value

O:select RPAD(abcd) value from dual

删除空格

S:ltrimrtrim

O:ltrimrtrimtrim

重复字符串

S:select REPLICATE(abcd) value

O:没发现

发音相似性比较(这两个单词返回值一样发音相同)

S:SELECT SOUNDEX (Smith) SOUNDEX (Smythe)

O:SELECT SOUNDEX (Smith) SOUNDEX (Smythe) from dual

SQLServer中用SELECT DIFFERENCE(Smithers Smythers) 比较soundex的差

返回为同音最高

日期函数

系统时间

S:select getdate() value

O:select sysdate value from dual

前后几日

直接与整数相加减

求日期

S:select convert(char()getdate()) value

O:select trunc(sysdate) value from dual

select to_char(sysdateyyyymmdd) value from dual

求时间

S:select convert(char()getdate()) value

O:select to_char(sysdatehh:mm:ss) value from dual

取日期时间的其他部分

S:DATEPART 和 DATENAME 函数 (第一个参数决定)

O:to_char函数 第二个参数决定

参数下表需要补充

year yy yyyy

quarter qq q (季度)

month mm m (m O无效)

dayofyear dy y (O表星期)

day dd d (d O无效)

week wk ww (wk O无效)

weekday dw (O不清楚)

Hour hhhhhh (hhhh S无效)

minute mi n (n O无效)

second ss s (s O无效)

millisecond ms (O无效)

当月最后一天

S:不知道

O:select LAST_DAY(sysdate) value from dual

本星期的某一天(比如星期日)

S:不知道

O:SELECT Next_day(sysdate) vaule FROM DUAL;

字符串转时间

S:可以直接转或者select cast(as datetime) value

O:SELECT To_date( ::yyyymmdd hhmiss) vaule FROM DUAL;

求两日期某一部分的差(比如秒)

S:select datediff(ssgetdate()getdate()+) value

O:直接用两个日期相减(比如dd=

SELECT (dd)*** vaule FROM DUAL;

根据差值求新的日期(比如分钟)

S:select dateadd(migetdate()) value

O:SELECT sysdate+// vaule FROM DUAL;

求不同时区时间

S:不知道

O:SELECT New_time(sysdateydtgmt ) vaule FROM DUAL;

时区参数北京在东区应该是Ydt

AST ADT 大西洋标准时间

BST BDT 白令海标准时间

CST CDT 中部标准时间

EST EDT 东部标准时间

GMT 格林尼治标准时间

HST HDT 阿拉斯加—夏威夷标准时间

MST MDT 山区标准时间

NST 纽芬兰标准时间

PST PDT 太平洋标准时间

YST YDT YUKON标准时间

上一篇:在Flashback数据库上获得较高可用性

下一篇:Oracle数据库备份与恢复精华资料集锦