数学函数 1.绝对值 s:select abs(-1) val e select abs(-1) val e from d al 2.取整(大) s:select ceiling(-1.001) val e select ceil(-1.001) val e from d al 3.取整(小) s:select floor(-1.001) val e select floor(-1.001) val e from d al 4.取整(截取) s:select cast(-1.002 as int) val e select tr nc(-1.002) val e from d al 5.四舍五入 s:select ro nd(1.,4) val e 1. select ro nd(1.,4) val e from d al 1.2346 6.e为底的幂 s:select exp(1) val e 2. select exp(1) val e from d al 2. 7.取e为底的对数 s:select log(2.) val e 1 select ln(2.) val e from d al; 1 8.取10为底对数 s:select log10(10) val e 1 select log(10,10) val e from d al; 1 9.取平方 s:select square(4) val e 16 select power(4,2) val e from d al 16 10.取平方根 s:select sqrt(4) val e 2 select sqrt(4) val e from d al 2 11.求任意数为底的幂 s:select power(3,4) val e 81 select power(3,4) val e from d al 81 12.取随机数 s:select rand val e select sys.dbms_random.val e(0,1) val e from d al; 13.取符号 s:select sign(-8) val e -1 select sign(-8) val e from d al -1 14.圆周率 s:select pi val e 3. 不知道 15.sin,cos,tan 参数都以弧度为单位 例如:select sin(pi2) val e 得到1(sqlserver) 16.asin,acos,atan,atan2 返回弧度 17.弧度角度互换(sqlserver,oracle不知道) degrees:弧度->角度 radians:角度->弧度数值间比较 18. 求*最大值 s:select max(val e) val e from (select 1 val e nion select -2 val e nion select 4 val e nion select 3 val e)a select greatest(1,-2,4,3) val e from d al 19. 求*最小值 s:select min(val e) val e from (select 1 val e nion select -2 val e nion select 4 val e nion select 3 val e)a select least(1,-2,4,3) val e from d al 20.如何处理n ll值(f2中的n ll以10代替) s:select f1,isn ll(f2,10) val e from tbl select f1,nvl(f2,10) val e from tbl 21.求字符序号 s:select ascii( a ) val e select ascii( a ) val e from d al 22.从序号求字符 s:select char(97) val e select chr(97) val e from d al 23.连接 s:select 11 + 22 + 33 val e select concat( 11 , 22 )||33 val e from d al 23.子串位置 --返回3 s:select charindex( s , sdsq ,2) val e select instr( sdsq , s ,2) val e from d al 23.模糊子串的位置 --返回2,参数去掉中间%则返回7 s:select patindex( %d%q% , sdsfasdqe ) val e oracle没发现,但是instr可以通过第四个参数控制出现次数 select instr( sdsfasdqe , sd ,1,2) val e from d al 返回6 24.求子串 s:select s bstring( abcd ,2,2) val e select s bstr( abcd ,2,2) val e from d al 25.子串代替 返回aijklmnef s:select stuff( abcdef , 2, 3, ijklmn ) val e select replace( abcdef , bcd , ijklmn ) val e from d al 26.子串全部替换 s:没发现 select translate( fasdbfasegas , fa , 我 ) val e from d al 27.长度 s:len,datalength length 28.大小写转换 lower, pper 29.单词首字母大写 s:没发现 select initcap( abcd dsaf df ) val e from d al 30.左补空格(lpad的第一个参数为空格则同space函数) s:select space(10)+ abcd val e select lpad( abcd ,14) val e from d al 31.右补空格(rpad的第一个参数为空格则同space函数) s:select abcd +space(10) val e select rpad( abcd ,14) val e from d al 32.删除空格 s:ltrim,rtrim ltrim,rtrim,trim 33. 重复字符串 s:select replicate( abcd ,2) val e 没发现 34.发音相似性比较(这两个单词返回值一样,发音相同) s:select soundex ( smith ), soundex ( smythe ) select soundex ( smith ), soundex ( smythe ) from d al sqlserver中用select difference( smithers , smythers ) 比较so ndex的差 返回0-4,4为同音,1最高日期函数 35.系统时间 s:select getdate val e select sysdate val e from d al 36.前后几日 直接与整数相加减 37.求日期 s:select convert(char(10),getdate,20) val e select tr nc(sysdate) val e from d al select to_char(sysdate, yyyy-mm-dd ) val e from d al 38.求时间 s:select convert(char(8),getdate,108) val e select to_char(sysdate,  ) val e from d al 39.取日期时间的其他部分 s:datepart 和 datename 函数 (第一个参数决定) to_char函数 第二个参数决定 参数下表需要补充 year yy, yyyy q arter qq, q (季度) month mm, m (m o无效) dayofyear dy, y (o表星期) day dd, d (d o无效) week wk, ww (wk o无效) weekday dw (o不清楚) ho r hh,hh12,hh24 (hh12,hh24 s无效) min te mi, n (n o无效) second ss, s (s o无效) millisecond ms (o无效) - 40.当月最后一天 s:不知道 select last_day(sysdate) val e from d al 41.本星期的某一天(比如星期日) s:不知道 select next_day(sysdate,7) va le from dual; 42.字符串转时间 s:可以直接转或者select cast( 2004-09-08 as datetime) val e select to_date( 2004-01-05 22:09:38 , yyyy-mm-dd hh24-mi-ss ) va le from dual; 43.求两日期某一部分的差(比如秒) s:select datediff(ss,getdate,getdate+12.3) val e 直接用两个日期相减(比如d1-d2=12.3) select (d1-d2)*24*60*60 va le from dual; 44.根据差值求新的日期(比如分钟) s:select dateadd(mi,8,getdate) val e select sysdate+86024 va le from dual; 45.求不同时区时间 s:不知道 select new_time(sysdate, ydt , gmt ) va le from dual; --时区参数,北京在东8区应该是ydt- ast adt 大西洋标准时间 bst bdt 白令海标准时间 cst cdt 中部标准时间 est edt 东部标准时间 gmt 格林尼治标准时间 hst hdt 阿拉斯加?