Oracle的数学函数
abs,acos,asin,atan,atan2,ceil,cos,cosh,exp,floor,ln,log,mod,power,round,sign,sin,sinh,sqrt,tan,tanh,trunc
说明:数学函数的输入和输出都是数字型,并且多数函数精确到38位。函数cos\cosh\exp\ln\log\sin\sinh\sqrt\tan\tanh精确到36位,acos\asin\atan\atan2精确到30为。数学函数可以在sql语句和plsql块中引用*/
/*ABS
语法:ABS(x)
功能:得到x的绝对值.
结果:99 99*/
select abs(99),abs(-99) from dual;
/*ACOS
语法:ACOS(x)
功能:返回x的反余弦值. 输入x应该从-1到1之间的数,结果在0到pi之间,输出以弧度为单位.
结果:3.14159265358979*/
select acos(-1) from dual;
/*ASIN
语法:ASIN(x)
功能:返回x的反正弦值. X的范围应该是-1到1之间,返回的结果在-pi/2到pi/2之间,以弧度为单位.
结果:0.523598775598299*/
select asin(0.5) from dual;
/*ATAN
语法:ATAN(x)
功能:计算x的反正切值.返回值在-pi/2到pi/2之间,单位是弧度.
结果:0.785398163397448*/
select atan(1) from dual;
/*ATAN2
语法:ATAN2(x,y)
功能:返回x除以y的反正切值.结果在负的pi/2到正的pi/2之间,单位是弧度.
结果:0.463647609000806*/
select antn2(1,2) from dual;
/*CEIL
语法:CEIL(x)
功能:计算大于或等于x的最小整数值.
结果:4 -3*/
select ceil(3.14) V1,ceil(-3.14) V2 from dual;
/*COS
语法:COS(x)
功能:返回x的余弦值. x的单位是弧度.
结果:-0.999999999999999*/
select cos(-3.1415927) from dual;
/*COSH
语法:COSH(x)
功能:计算x的双曲余弦值.
结果:242582597.704895*/
select cosh(20) from dual;
/*EXP
语法:EXP(x)
功能:计算e的x次幂. e为自然对数,约等于2.71828.
结果:7.38905609893065 2.71828182845905*/
select exp(2),exp(1) from dual;
/*FLOOR
语法:FLOOR(x)
功能:返回小于等于x的最大整数值.
结果:45 -46*/
SELECT FLOOR(45.67) V1,FLOOR(-45.67) V2 FROM dual;
/*LN
语法:LN(x)
功能:返回x的自然对数. x必须是正数,并且大于0
结果:0 0.693147180559945 0.999999989530502*/
select ln(1),ln(2),ln(2.7182818) from dual;
/*LOG
语法:LOG(x,y)
功能:计算以x为底的y的对数.底必须大于0而且不等于1,y为任意正数.
结果:0 3*/
select log(2,1),log(2,8) from dual;
/*MOD
语法:MOD(x,y)
功能:返回x除以y的余数.如果y是0,则返回x
结果:1 0 2*/
select mod(10,3),mod(3,3),mod(2,3) from dual;
/*POWER
语法:POWER(x,y)
功能:计算x的y次幂.
结果:1024 27*/
select power(2,10),power(3,3) from dual;
/*ROUND
语法:ROUND(x[,y])
功能:四舍五入函数,y缺省值为0,x保留整数;y>0,x保留小数点右边y位;y<0,x保留小数点左边 |y| 位;可以对时间进行round,效果是只保留年月日.
结果:55.66 55.65 50 0 100*/
select round(55.655,2),round(55.654,2),round(45.654,-1),round(45.654,-2),round(55.654,-2) from dual;
/*SIGN
语法:SIGN(x)
功能:检测x的正负.如果x<0返回-1.如果x=0返回0.如果x>0返回1.
结果:1 -1 0*/
select sign(123),sign(-100),sign(0) from dual;
/*SIN
语法:SIN(x)
功能:计算x的正弦值. X是一个以弧度表示的角度.
结果:0.999999999979986*/
select sin(1.57079) from dual;
/*SINH
语法:SINH(x)
功能:返回x的双曲正弦值.
结果:0.912945250727628 242582597.704895*/
select sin(20),sinh(20) from dual;
/*SQRT
语法:SQRT(x)
功能:返回x的平方根. x必须是正数.
结果:8 3.16227766016838*/
select sqrt(64),sqrt(10) from dual;
/*TAN
语法:TAN(x)
功能:计算x的正切值,x是一个以弧度位单位的角度.
结果:2.23716094422474 0.648360827459087*/
select tan(20),tan(10) from dual;
/*TANH
语法:TANH(x)
功能:计算x的双曲正切值.
结果:1 2.23716094422474*/
select tanh(20),tan(20) from dual;
/*TRUNC
语法:TRUNC(x[,y])
功能:截取数字函数,只舍不入函数, y缺省值为0,x保留整数;y>0,x保留小数点右边y位;y<0,x保留小数点左边 |y| 位
结果:55.65 55.65 40 0
2023/3/4 2023/3/1 2023/1/1 2023/2/26 2023/1/1(SYSDATE:2023/3/4)*/
SELECT TRUNC(55.655,2),TRUNC(55.654,2),TRUNC(45.654,-1),TRUNC(45.654,-2) FROM DUAL;
SELECT TRUNC(SYSDATE,'DD'),/*当天*/TRUNC(SYSDATE,'MM'),/*本月第一天*/TRUNC(SYSDATE,'yyyy'),/*本年第一天*/TRUNC(SYSDATE,'day'),/*本周第一天(周日)*/TRUNC(SYSDATE,'q')/*本季度第一天*/ FROM DUAL;