1、关于trunc 和round函数比较

整体概括:

round函数 四舍五入
trunc函数 直接截取

对于时间:

Round函数对日期进行“四舍五入”,Trunc函数对日期进行截取。如果我们不指定格式的话,Round会返回一个最接近date参数的日期,而Trunc函数只会简单的截取时分秒部分,返回年月日部分

对于数字:

Round函数对数字同样进行“四舍五入”,Trunc函数截取时不进行四舍五入,可以指明保留小数点后面的位数。

2、Round、Trunc用法

    1. /**************************For date****************************/
    2. --Trunc函数
    3. SELECT TRUNC(SYSDATE), -- 今天的日期为  2014-05-08
    4. TRUNC(SYSDATE, 'YYYY'), --返回当年第一天 2014-01-01  yyyy/yy/year 年
    5. TRUNC(SYSDATE, 'MM'), --返回当月第一天  2014-05-01   mm/month     月
    6. TRUNC(SYSDATE, 'DD'), --返回当前年月日 2014-05-08    d/day        周
    7. TRUNC(SYSDATE, 'D'), --(星期天)返回当前星期的第一天 2014-05-04
    8. TRUNC(SYSDATE, 'HH'), --返回当前时间精确小时  2014-05-08 11:00:00
    9. TRUNC(SYSDATE, 'MI') -- 返回当前时间精确分钟  2014-05-08 11:06:00  TRUNC()函数没有秒的精确
    10. FROM DUAL;
    11. --Round函数
    12. select Round(sysdate, 'Q') Rnd_Q, --2014-04-01
    13. Round(sysdate, 'Month') Rnd_Month, --2014-05-01
    14. Round(sysdate, 'WW') Rnd_Week, --2014-05-07
    15. Round(sysdate, 'W') Rnd_Week_again, --2014-05-08
    16. Round(sysdate, 'DDD') Rnd_day, --2014-05-08
    17. Round(sysdate, 'DD') Rnd_day_again, --2014-05-08
    18. Round(sysdate, 'DAY') Rnd_day_of_week, --2014-05-11
    19. Round(sysdate, 'D') Rnd_day_of_week_again, --2014-05-11
    20. Round(sysdate, 'HH12') Rnd_hour_12, --2014-05-08 12:00:00
    21. Round(sysdate, 'HH24') Rnd_hour_24, --2014-05-08 12:00:00
    22. Round(sysdate, 'MI') Rnd_minute --2014-05-08 11:52:00
    23. from dual;
    24. /****************************For number************************/
    25. /**
    26. --TRUNC(number,num_digits)
    27. Number 需要截尾取整的数字。
    28. Num_digits  指明需保留小数点后面的位数。可选项,忽略他则截去任何的小数部分,Num_digits 的默认值为 0,
    29. --此参数够为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。
    30. TRUNC()函数截取时不进行四舍五入**/
    31. --TRUNC函数
    32. select TRUNC(123.458), --123
    33. TRUNC(123.458, 0), --123
    34. TRUNC(123.458, 1), --123.4
    35. TRUNC(123.458, 2), --123.45
    36. TRUNC(123.458, 3), --123.458
    37. TRUNC(123.458, 4), --123.458
    38. TRUNC(123.458, -1), --120
    39. TRUNC(123.458, -2), --100
    40. TRUNC(123.458, -3), --0
    41. TRUNC(123.458, -4), --0
    42. TRUNC(123), --123
    43. TRUNC(123, 1), --123
    44. TRUNC(123, 2), --123
    45. TRUNC(123, 3), --123
    46. TRUNC(123, 4) --123
    47. from dual;
    48. --Round函数
    49. select Round(123.458), --123
    50. Round(123.458, 0), --123
    51. Round(123.458, 1), --123.5
    52. Round(123.458, 2), --123.46
    53. Round(123.458, 3), --123.458
    54. Round(123.458, 4), --123.458
    55. Round(123.458, -1), --120
    56. Round(123.458, -2), --100
    57. Round(123.458, -3), --0
    58. Round(123.458, -4), --0
    59. Round(123), --123
    60. Round(123, 1), --123
    61. Round(123, 2), --123
    62. Round(123, 3), --123
    63. Round(123, 4) --123
    64. from dual;

round(x[,y]) 
【功能】返回四舍五入后的值 
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。 
【返回】数字 
【示例】 select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual; 
返回: 5555.67 , 5600 , 5556 
【相近】trunc(x[,y]) 返回截取后的值,用法同round(x[,y]),只是不四舍五入 

trunc(x[,y]) 
【功能】返回x按精度y截取后的值 
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。 
【返回】数字 
【示例】 select trunc(5555.66666,2.1),trunc(5555.66666,-2.6),trunc(5555.033333) from dual; 
返回:5555.66 5500 5555 
【相近】round(x[,y]) 返回截取后的值,用法同trunc(x[,y]),只是要做四舍五入

Oracle trunc和round的区别的更多相关文章

  1. 【测试】trunc和round的区别

    trunc是截断:round是四舍五入:下面通过一个例子具体看一下trunc和round的不同 SQL),trunc() from dual; TRUNC() TRUNC() ------------ ...

  2. Oracle trunc()函数的用法及四舍五入 round函数

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  3. Oracle trunc函数

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  4. Oracle trunc()函数的用法--来着心静禅定ing

    1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指 ...

  5. [转]Oracle trunc()函数的用法

    原文地址:http://www.cnblogs.com/gengaixue/archive/2012/11/21/2781037.html 1.TRUNC(for dates) TRUNC函数为指定元 ...

  6. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

  7. oracle的oci和thin区别(数据源)

    我是今天看到tomcat数据源的配置时,想起来这个问题,刚开始还不晓得thin是什么东西! database.url=jdbc:oracle:thin:angel/oracle@192.168.55. ...

  8. oracle获取本月第一天和最后一天及Oracle trunc()函数的用法

    select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_cha ...

  9. Oracle trunc()函数

    Oracle trunc()函数的用法   --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysd ...

随机推荐

  1. 详细剖析Spring Cloud 和Spring Cloud Alibaba的前世今生

    我们知道spring cloud可以用来开发微服务,但是应该很少有人真正知道Spring Cloud是什么. 官方的解释是:spring cloud提供了一些可以让开发者快速构建分布式应用的工具,这些 ...

  2. Python基础入门(1)- Python环境搭建与基础语法

    Python编程环境搭建 Python环境搭建 官网下载:https://www.python.org/ python --version PyCharm下载安装 安装 官网下载:https://ww ...

  3. 问题 N: 非洲小孩

    题目描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间 ...

  4. Python基础(slice切片)

    l = ['傻狗1','傻狗2','傻狗3','傻狗4','傻狗5','傻狗6'] print(l[0:3])#['傻狗1', '傻狗2', '傻狗3'] numbers = list(range(1 ...

  5. 图片处理看这篇就完了「GitHub 热点速览 v.21.48」

    作者:HelloGitHub-小鱼干 图像处理一直是个实用且热门的研究领域,而本周的 GitHub 项目则多个图像项目上榜.先是勉强和图像处理搭边的渲染引擎 Filament,它能渲染出效果极佳的 3 ...

  6. SpringBoot引入第三方jar的Bean的三种方式

    在SpringBoot的大环境下,基本上很少使用之前的xml配置Bean,主要是因为这种方式不好维护而且也不够方便. 因此本篇博文也不再介绍Spring中通过xml来声明bean的使用方式. 一.注解 ...

  7. CF1354F Summoning Minions

    考虑我们一定是先放我们选定了\(m\)个数,一定是先放了\(m-1\)个数上去,然后让放上一个不打算选的然后拿下来,白嫖\(b * (m-1)\)的贡献,最后放上一个打算放的. 考虑我们一定是按\(b ...

  8. 洛谷 P7451 - [THUSCH2017] 杜老师(线性基+根分+结论题)

    题面传送门 看到乘积为平方数我们可以很自然地想到这道题,具体来说,我们对 \(1\sim 10^7\) 中所有质因子标号 \(1,2,\cdots,\pi(10^7)\),对于 \(x\in[l,r] ...

  9. Codeforces 650D - Zip-line(树状数组)

    Codeforces 题目传送门 & 洛谷题目传送门 我怕不是个 nt--一开始忽略了"询问独立"这个条件--然后就一直在想有什么办法维护全局 LIS--心态爆炸 首先离散 ...

  10. 解决 Ubuntu 下 gedit编辑器打开文件出现中文乱码问题

    解决 Ubuntu 中 gedit编辑器打开文件出现中文乱码问题 1. 问题分析 在 windows 系统下,.txt 文件默认编码方式为 gb18030 格式的中文编码,而 gedit 默认的编码方 ...