MSSQL和Oracle常用函数比对

数学函数


序号


函数功能


SQL Server用法


Oracle用法


1


绝对值


select abs(-1) value


select abs(-1) value from dual


2


取整(大)


select ceiling(-1.001) value


select ceil(-1.001) value from dual


3


取整(小)


select floor(-1.001) value


select floor(-1.001) value from dual


4


取整(截取)


select cast(-1.002 as int) value


select trunc(-1.002) value from dual


5


四舍五入


select round(1.23456,4) value


select round(1.23456,4) value from dual


6


为底的幂


select Exp(1) value


select Exp(1) value from dual


7


取e为底的对数


select log(2.7182818284590451)


select ln(2.7182818284590451)


8


取10为底对数


select log10(10)


select log(10,10)


9


取平方


select SQUARE(4)


select power(4,2)


10


取平方根


select SQRT(4)


select SQRT(4)


11


求任意数为底的幂


select power(3,4)


select power(3,4)


12


取随机数


select rand()


select sys.dbms_random.value(0,1)


13


取符号


select sign(-8)


select sign(-8)


14


圆周率


SELECT PI()


15


sin,cos,tan


select sin(PI()/2)


select sin(PI()/2)


16


求集合最大值


select max(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a


select greatest(1,-2,4,3) value from dual


17


求集合最小值


select min(value) value from
  (select 1 value
  union
  select -2 value
  union
  select 4 value
  union
  select 3 value)a


select least(1,-2,4,3) value from dual


18


处理null值(F2中的null以10代替)


select F1,IsNull(F2,10) value from Tbl


select F1,nvl(F2,10) value from Tbl

数值间比较


序号


函数功能


SQL Server用法


Oracle用法


1


求字符序号


select ascii(‘a‘)


select ascii(‘a‘) value from dual


2


从序号求字符


select char(97) value


select chr(97) value from dual


3


连接


select ‘11‘+‘22‘+‘33‘ value


select CONCAT(‘11‘,‘22‘)||33 value from dual


4


子串位置


select charindex(‘s‘,‘sdsq‘,2) value


select instr(‘sdsq‘,‘s‘,2) value from dual


5


模糊子串的位(返回2,参数去掉中间%则返回7)


select patindex(‘%d%q%‘,‘sdsfasdqe‘) value


select INSTR(‘sdsfasdqe‘,‘sd‘,1,2) value from dual 返回6


6


求子串


select substring(‘abcd‘,2,2) value


select substr(‘abcd‘,2,2) value from dual


7


子串代替(返回aijklmnef)


SELECT STUFF(‘abcdef‘, 2, 3, ‘ijklmn‘) value


SELECT Replace(‘abcdef‘, ‘bcd‘, ‘ijklmn‘) value from dual


8


子串全部替换


没发现


select Translate(‘fasdbfasegas‘,‘fa‘,‘我‘ ) value from dual


9


长度


Len或datalength


length


10


大小写转换


lower,upper


lower,upper


11


单词首字母大写


没发现


select INITCAP(‘abcd dsaf df‘) value from dual


12


左补空格


select space(10)+‘abcd‘ value


select LPAD(‘abcd‘,14) value from dual


13


右补空格


select ‘abcd‘+space(10) value


select RPAD(‘abcd‘,14) value from dual


14


删除空格


ltrim,rtrim


ltrim,rtrim,trim


15


重复字符串


select REPLICATE(‘abcd‘,2) value


lpad(‘d‘,6,‘0‘),rpad(‘d’,6,’0’)


16


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


SELECT SOUNDEX (‘Smith‘), SOUNDEX (‘Smythe‘)


SELECT SOUNDEX (‘Smith‘), SOUNDEX (‘Smythe‘) from dual

日期函数


序号


函数功能


SQL Server用法


Oracle用法


1


系统时间


select getdate() value


select sysdate value from dual


前后几日


直接与整数相加减


直接与整数相加减


求日期


select convert(char(10),getdate(),20) value


select trunc(sysdate) value from dual select to_char(sysdate,‘yyyy-mm-dd‘) value from dual


求时间


select convert(char(8),getdate(),108) value


select to_char(sysdate,‘hh24:mm:ss‘) value from dual


取日期时间的其他部分


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


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 hh,hh12,hh24 (hh12,hh24 S无效)
  minute mi, n (n O无效)
  second ss, s (s O无效)
  millisecond ms (O无效)


当月最后一天


没发现


select lsat_day(sysdate) value from dual


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


没发现


select Next_day(sysdate,7) vaule FROM DUAL;


字符串转时间


可以直接转或者select cast(‘2004-09-08‘as datetime) value


select To_date(‘2004-01-05 22:09:38‘,‘yyyy-mm-dd hh24-mi-ss‘) vaule FROM DUAL;


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


select datediff(ss,getdate(),getdate()+12.3) value


直接用两个日期相减(比如d1-d2=12.3)
  SELECT (d1-d2)*24*60*60 vaule FROM DUAL;


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


select dateadd(mi,8,getdate()) value


SELECT sysdate+8/60/24 vaule FROM DUAL;

时间: 2024-08-02 11:33:47

MSSQL和Oracle常用函数比对的相关文章

Oracle常用函数

前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使用: 往emp表中插入一条记录: SQL> insert into emp values(1234,'LIZELU','BOSS',1234,'1980-12-06',10000.0,0,30); insert into emp values(1234,'LIZELU','BOSS',1234,'1

oracle常用函数(1)

1.返回与指定的字符对应的十进制数 select ascii('A') A,ascii('z') a,ascii('12') 一打,ascii(' ') kg from dual; 2.返回与指定十进制对应的字符 select chr(65) A,chr(122) z from dual; 3.连接两个字符串 select concat('熊大','熊二') constr from dual;--熊大熊二 4.将第一个字符变大写并返回字符串 select initcap('boat') uppe

【Oracle】详解Oracle常用函数

Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果. Oracle 数据库中主要使用两种类型的函数: 1.  单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果, 比如:MOD(x,y)返回 x 除以 y 的余数(x 和 y 可以是两个整数,也可以是表中的整 数列).常用的单行函数有: Ø  字符函数:对字符串操作. Ø  数字函数:对数字进行计算,返回一个数字. Ø  转换函

oracle常用函数(2)

1.TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} FROM ]trim_source) 函数 参数:leading   如果指定leading参数,oracle数据库将去除任何等于trim_character的开头字符. 参数:trailing  如果指定traling参数,oracle将去除任何等于trim_character的结尾字符. 参数:both  如果指定了both参数或者三个参数都

Oracle常用函数及其用法

01.入门Oracle 本章目标: 掌握oracle安装.启动和关闭 基本管理以及常用工具 简单备份和恢复 熟练使用sql,掌握oracle常用对象 掌握数据库设计和优化基本方法 http://jingyan.baidu.com/article/5d6edee228308899eadeec3f.html oracle数据库:一系列物理文件的集合 一个实例是对应一个数据库,但是在12c中(c代表云)RAC集群,可以多个实例对应一个数据库 03.SQL编程 1.oracle中between and

十、oracle 常用函数

一.字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式.upper(char):将字符串转化为大写的格式.length(char):返回字符串的长度.substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, search_string, replace_string)instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引

oracle常用函数及示例

学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函数及示例,一是为了和大家分享,二是可以在以后工作中忘记了随时查阅.废话不多说,下面直接上函数. 一.单行函数 只处理单个行,并且为每行返回一个结果. 1.字符函数 (1)concat(str1,str2)字符串拼接函数 select concat('Hello ','World') from dua

oracle 常用函数汇总

一.字符函数字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式.upper(char):将字符串转化为大写的格式.length(char):返回字符串的长度.substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, search_string, replace_string)instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引

mysql与oracle常用函数及数据类型对比

最近在转一个原来使用oracle,打算改为mysql的系统,有些常用的oracle函数的mysql实现顺便整理了下,主要是系统中涉及到的(其实原来是专门整理过一个详细doc的,只是每次找word麻烦). 特性 oracle mysql 字符串转日期 to_date str_to_date 日期类型 date 公元前4712年1月1日至公元9999年12月31日 datetime:取值范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59 timestamp:取值