Oracle学习笔记——基础一起学 8

文章详细介绍了OracleSQL中的ROUND和TRUNC函数,分别展示了如何进行日期的四舍五入和精确截断,包括按年、月以及指定小数位数。还列举了其他相关的数字函数如ABS、CEIL、FLOOR等。
摘要由CSDN通过智能技术生成

--ROUND
--如果对年四舍五入,就保留到10年的1月1日上去了

SQL> select round(to_date('20100611','yyyymmdd'),'year') from dual;

ROUND(TO_DATE(

--------------

01-1月 -10

--7月份四舍五入,入到下一年。

SQL> select round(to_date('20100711','yyyymmdd'),'year') from dual;

ROUND(TO_DATE(

--------------

01-1月 -11

--如果对月份四舍五入就保留到6月1号上去了

SQL> select round(to_date('20100611','yyyymmdd'),'month') from dual;

ROUND(TO_DATE(

--------------

01-6月 -10

--6月21号四舍五入舍到7月1日

SQL> select round(to_date('20100621','yyyymmdd'),'month') from dual;

ROUND(TO_DATE(

--------------

01-7月 -10

--NEXT_DAY

--TRUNC

--使用trunc截断年,就变成2010年1月1号(无论是6月还是12月)

SQL> select trunc(to_date('20100621','yyyymmdd'),'year') from dual;

TRUNC(TO_DATE(

--------------

01-1月 -10

SQL> select trunc(to_date('20101221','yyyymmdd'),'year') from dual;

TRUNC(TO_DATE(

--------------

01-1月 -10

按照日期trunc直接变成6月1号,无论日期多大。

SQL> select trunc(to_date('20100621','yyyymmdd'),'month') from dual;

TRUNC(TO_DATE(

--------------

01-6月 -10

--EXTRACT

数字函数

数字函数接受数字输入并返回数值结果

函数

输入

输出

Abs(n)

Select abs(-15) from dual;

15

Ceil(n)

Select ceil(44.778) from dual;

45

Cos(n)

Select cos(180) from dual;

-.59846007

Cosh(n)

Select cosh(0) from dual;

1

Floor(n)

Select floor(100.2) from dual;

100

Power(m,n)

Select power(4,2) from dual;

16

Mod(m,n)

Select mod(10,3) from dual;

1

Round(m,n)

Select round(100.256,2) from dual;

100.26

Trunc(m,n)

Select trunc(100.256,2) from dual;

100.25

Sqrt(n)

Select sqrt(4) from dual;

2

Sign(n)

Select sign(-30) from dual;

-1

1、ABS(n)函数:返回数字的绝对值

    select ABS(-7) FROM DUAL

    结果:7

2、SIGN(x)函数:检测x的正负.如果x<0返回-1.如果x=0返回0.如果x>0返回1.

    select SIGN(-7) FROM DUAL
    结果:-1

 

3、CEIL(n)函数:返回大于或等于n的最小的整数值

    select CEIL(1.3) FROM DUAL

    结果:2

4、FLOOR(n)函数:返回小于或等于n的最大的整数值

  select FLOOR(1.3) FROM DUAL

  结果:1

5、MOD(number,divisor)函数:取余。number为被除数,divisor为除数。如果divisor为0,则返回number

  select MOD(6,4) FROM DUAL

  结果:2

6、SQRT(X)函数:X的平方根

 select SQRT(4) FROM DUAL

 结果:2

7、COS(n)函数:返回n的余弦值

 select COS(0) FROM DUAL

 结果:1

8、ACOS(n)函数:反余弦函数,n between -1 and 1,返回值between 0 and pi,输出以弧度为单位.

 select ACOS(1) FROM DUAL

 结果:0

9、COSH(n)函数:计算n的双曲余弦值.

 select COSH(0) FROM DUAL

 结果:1

10、SIN(n)函数:返回n的正弦值,n为弧度

 select SIN(0) FROM DUAL

 结果:0

11、ASIN(n)函数:返回n的反正弦值. n的范围应该是-1到1之间,返回的结果在-pi/2到pi/2之间,以弧度为单位.

 select ASIN(0) FROM DUAL

 结果:0

12、SINH(n)函数:返回n的双曲正弦值,n为弧度

 select SINH(0) FROM DUAL

 结果:0

13、TAN(n)函数:返回n的正切值,n为弧度

 select TAN(0) FROM DUAL

 结果:0

14、ATAN(n)函数:计算x的反正切值.返回值在-pi/2到pi/2之间,单位是弧度.

select ATAN(0) FROM DUAL

结果:0

15、ATAN2(x,y)函数:返回x除以y的反正切值.结果在负的pi/2到正的pi/2之间,单位是弧度.

select ATAN2(0,1) FROM DUAL

结果:0

16、TANH(n)函数:返回n的双曲正切值,n为弧度

select TANH(0) FROM DUAL

结果:0

17、POWER(X,Y)函数:X的Y次幂

select POWER(2,3) FROM DUAL

结果:8

18、LOG(X,Y)函数:X为底Y的对数,X>0 and not 1,Y>0

select Log(2,4) FROM DUALLN(x)函数

结果:2

19、EXP(x)函数:计算e的x次幂. e为自然对数,e=2.71828...

select EXP(1) FROM DUAL

结果:2.71828182845905

20、LN(x)函数:返回x的自然对数. x必须是正数,并且大于0

select LN(2.71828182845905) FROM DUAL

结果:1

21、TRUNC(X[,Y])函数:X在第Y位截断。直接截取,不四舍五入。y缺省值为0。y>0,就是四舍五入到小数点右边y位。若y<0,四舍五入到小数点左边|y|位。

select TRUNC(1.126,2) FROM DUAL

结果:1.12

22、ROUND(X[,Y])函数:X在第Y位四舍五入

select ROUND(2.123,2) FROM DUAL
结果:2.12

23、BITAND(n1,n2)函数:位与运算符。3和9转为二进制分别为0011和1001,做位与运算得到0001,转换为十进制数为1.

select BITAND(3,9) FROM DUAL
结果:1

24、BIN_TO_NUM(n1,n2,……n)函数:二进制转向十进制

select BIN_TO_NUM(1,0) FROM DUAL
结果:2

25、TO_char()格式化数值:常见的字符匹配有 0、9、,、$、FM(去掉前面空格和后面的0)、L、C。其中FM可以与$,L,C一起使用

select to_char(123.45, '0000.000') "0",

       to_char(123.45, '9999.999') "9",

       to_char(123123, '99,999,999.99') ",",

       to_char(123123.0300, 'FM99,999,999.99') FM,

       to_char(123123.3, '$99,999,999.99') "$",

       to_char(123123.3, 'L99,999,999.99') L,

       to_char(123123.3, '99,999,999.99C') C

  from dual;

引用Oracle函数——数值函数_oracle数字函数-CSDN博客

  1. round()四舍五入(可以写保留几位小数)

SQL> select round(12.34) from dual;

ROUND(12.34)

------------

          12

SQL> select round(12.34,1) from dual;

ROUND(12.34,1)

--------------

          12.3

SQL> select round(12.36,1) from dual;

ROUND(12.36,1)

--------------

          12.4

SQL> select round(12.36,-1) from dual;

ROUND(12.36,-1)

---------------

             10

2、trunc()直接截断,保留整数部分,不论多少都是截断。(加位数截断几位,-1就是10)

SQL> select trunc(12.34) from dual;

TRUNC(12.34)

------------

          12

SQL> select trunc(12.74) from dual;

TRUNC(12.74)

------------

          12

SQL> select trunc(12.36,-1) from dual;

TRUNC(12.36,-1)

---------------

             10

如果能帮到你请感谢我的老婆“一行琉璃”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值