round函数与trunc函数的使用方法

之前的一些博文中已经提及过这两个函数的用法,但之前的值使用了数字类型进行的测试。
在这篇博文里,算是这两个函数使用的补充吧。因为近段时间里常用到了这两个函数,其中省略了
函数中的部分参数,但同样可以使用函数。以下是测试的过程:

----round函数与trunc函数的使用方法:

sys@PROD>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

 

---函数的结构:

ROUND(x,y):以小数点后Y位(或Y日期格式)四舍五入取X的值。

TRUNC(x,y):以小数点后Y位(或Y日期格式)截断取X的值。

#两个函数同时适用于处理日期类型与数字类型的数据。

 

---查看当前系统的日期与时间:

sys@PROD>select sysdate from dual;

SYSDATE

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

2016-12-13 11:26:37

 

---适用两个函数查看省略函数中Y参数值的日期:

sys@PROD>select trunc(sysdate),round(sysdate) from dual;

TRUNC(SYSDATE)      ROUND(SYSDATE)

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

2016-12-13 00:00:00 2016-12-13 00:00:00

 

sys@PROD>select round(sysdate,'dd'),trunc(sysdate,'dd') from dual;

ROUND(SYSDATE,'DD') TRUNC(SYSDATE,'DD')

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

2016-12-13 00:00:00 2016-12-13 00:00:00

#当函数省略Y参数的时候,数字类型默认为Y=0,可省略;日期类型默认为Y=’dd’,可省略。

 

---使用两个函数查看省略函数中Y参数值的某个数值:

sys@PROD>select round(3.14159),trunc(3.14159) from dual;

ROUND(3.14159) TRUNC(3.14159)

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

             3              3

#round函数取得该值为3,因为个位数后面为1,四舍五入取0.

 

---使用两个函数查看以不同格式取舍时指定的日期与时间:

--round函数

sys@PROD>select round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss')),

  2  round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm'),

  3  round(to_date('2016-12-13 13:45:55','yyyy-mm-dd hh24:mi:ss'),'yyyy')

  4  from dual;

ROUND(TO_DATE('2016 ROUND(TO_DATE('2016 ROUND(TO_DATE('2016

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

2016-12-14 00:00:00 2016-12-01 00:00:00 2017-01-01 00:00:00

sys@PROD>select round(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm') from dual;

ROUND(TO_DATE('2016

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

2017-01-01 00:00:00

 

--trunc函数:

sys@PROD>select trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss')),

  2  trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'mm'),

  3  trunc(to_date('2016-12-16 13:45:55','yyyy-mm-dd hh24:mi:ss'),'yyyy')

  4  from dual;

 

TRUNC(TO_DATE('2016 TRUNC(TO_DATE('2016 TRUNC(TO_DATE('2016

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

2016-12-16 00:00:00 2016-12-01 00:00:00 2016-01-01 00:00:00

sys@PROD>

 

---使用两个函数查看以不同位数取舍时指定的数值:

--round函数:

sys@PROD>select round(36.64159),round(36.64159,2),round(36.64159,-1) from dual;

ROUND(36.64159) ROUND(36.64159,2) ROUND(36.64159,-1)

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

             37             36.64                 40

 

--trunc函数:

sys@PROD>select trunc(36.64159),trunc(36.64159,2),trunc(36.64159,-1) from dual;

TRUNC(36.64159) TRUNC(36.64159,2) TRUNC(36.64159,-1)

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

             36             36.64                 30

--我们从以上的测试看出:总的来说,round函数是严格遵循“四舍五入”法则取舍,而trunc函数则没有
严格遵循。trunc更利索地截取,从参数值中确定参考位置,然后就从该位置之后的位数全部置零(对日期类型,全部以月份或日的首个月份或日)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2130379/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31392094/viewspace-2130379/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值