Oracle中trunc函数、round 函数、ceil函数和floor函数的使用-程序员宅基地

1.1trunc函数处理数字

trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

其具体的语法格式如下

TRUNC(number[,decimals])

其中:

number 待做截取处理的数值

decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。

?
1
2
3
selecttrunc(123.98) from dual;
selecttrunc(123.123,2) from dual;
selecttrunc(123.123,-1) from dual;

 

注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推;如果所设置的参数为负数,且负数的位数大于或等于整数的字节数的话,则返回为0。如:TRUNC(89.985,-3)=0。

1.2trunc函数处理日期

trunc函数返回以指定元元素格式截去一部分的日期值。

其具体的语法格式如下:

TRUNC(date,[fmt])

其中:

date为必要参数,是输入的一个日期值

fmt参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去

下面是该函数的使用情况:

?
1
2
3
4
5
6
trunc(sysdate, 'yyyy' ) --返回当年第一天.
trunc(sysdate, 'mm' ) --返回当月第一天.
trunc(sysdate, 'd' ) --返回当前星期的第一天.
selecttrunc(sysdate, 'YYYY' ) from dual;
selecttrunc(sysdate, 'MM' ) from dual;
selecttrunc(sysdate, 'D' ) from dual;

 

2.round函数(四舍五入)

描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。

?
1
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL

 

参数:

number : 欲处理之数值

decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )

?
1
2
3
4
Sample :
select round(123.456, 0) from dual;          回传 123
select round(123.456, 1) from dual;          回传 123.5
select round(-123.456, 2) from dual;        回传 -123.46

 

3.ceil和floor函数

ceil和floor函数在一些业务数据的时候,有时还是很有用的。

ceil(n) 取大于等于数值n的最小整数;

floor(n)取小于等于数值n的最大整数

如下例子

 

 

应用:

对于每个员工,显示其加入公司的天数。

?
1
2
3
SQL> select floor(sysdate-hiredate) "入职天数" ,ename from emp;
or
SQL> select trunc(sysdate-hiredate) "入职天数" ,ename from emp;
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/L905128009/article/details/78617505

智能推荐

linux中一些特殊符号的用法-程序员宅基地

文章浏览阅读1.4k次。系统实验中遇到了一些输入特殊字符出错的问题,查阅之后发现这属于linux中特殊符号的用法,查阅资料转载如下: 1、{} 大括号:用法一:通配符扩展eg: ls my_{finger,toe}s这条命令相当于如下命令的组合:ls my_fingers my_toeseg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-b

ubuntu jdk1.6.0_26安装 _java 1.6更新26(jdk)安装-程序员宅基地

文章浏览阅读1.7k次。在 http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html官网下载jdk 注意:LinuxSome Linux platforms, such as Red Hat and SuSE, are RPM-based, which provide an automated_java 1.6更新26(jdk)安装

在组内集群编译nwchem-程序员宅基地

文章浏览阅读1.6k次,点赞3次,收藏6次。1. 编译openblas这是nwchem编译需要使用的库,从官网上下载源代码。#编译make#安装到指定路径make install PREFIX=/home/jrf/tools/openblas2.编译ucx要使用的OpenMPI为4.0.1版本 所以使用ucx连接。 最开始下载和编译ucx通讯模块。此处参考https://github.com/openucx/ucx/wi...

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()-程序员宅基地

文章浏览阅读1.8k次。ServletContext servletContext = request.getServletContext();出异常.java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext;解决方案:Servlet...

mongodb 建立唯一索引,去除重复数据_mongodb 唯一索引 去重-程序员宅基地

文章浏览阅读1.4w次。如果建立唯一索引的时候,有数据重复,则会报错,所以可以通过以下方法间接解决:1.将数据导出json格式./mongoexport -d liuniu -c tWechatMessage -o tWechatMessage.json -d 数据库名-c 集合名-o 导出后的名字(也可以加上路径 )2.删除当前集合的数据db.tWechatMessage.r_mongodb 唯一索引 去重

在react中使用redux和react-redux-程序员宅基地

文章浏览阅读1.6k次,点赞5次,收藏33次。在react中使用reduxredux是什么?redux是一个独立专门用于做状态管理的JS库(不是react插件库)它可以用在react,angular,vue等项目中,但基本与react配合使用作用:集中式管理react应用中的多个组件共享的状态redux工作流程:什么情况下需要使用redux总体原则:能不用就不用某个组件的状态需要共享某个状态需要在任何地方都可以拿到一个组件需要改变全局状态一个组件需要改变另一个组件的状态redux的核心APIcreateStore()作

随便推点

idea恢复到以前代码_idea怎么回到半小时之前-程序员宅基地

文章浏览阅读3.6w次,点赞52次,收藏53次。场景:idea开发时,使用了代码生成后,发现生成错了,覆盖了之前的代码,需要撤销,这时候 ctrl+z 就不管用了。解决:1.选中项目根目录,单击右键。2.选择Local History,并查看当地历史,Show History3.选择需要的历史版本4.单击右键,恢复即可!..._idea怎么回到半小时之前

第二周项目5-图书馆的书-程序员宅基地

文章浏览阅读536次。问题及代码:/**Copyright(c)2014,烟台大学计算学院*All rights reserved.*文件名称:test.cpp*作者:陈银丽*完成日期:2015年3月18日*版本号:v1.0**问题描述:编写一个book类,包含name(书名)、writer(作者)、*输入描述:*程序输出:*/#include #include using na

Flutter打包APK注意事项-程序员宅基地

文章浏览阅读554次。打包步骤:生成jks签名文件:我们可以用AS打开android项目,并创建jks:创建成功后,将jks文件放进app下的keystore目录(当然jks文件放入位置是自定义的):在android根目录下创建key.properties:storePassword=123456keyPassword=123456keyAlias=wanwanstoreFile=keystore/key.jks打开app的build.gradle,添加代码: def keystorePrope

清华大学深圳研究生院自动化系九推,2018/9_自动化九推-程序员宅基地

文章浏览阅读7.3k次,点赞6次,收藏53次。序幕 清华各个院九推都和本部走一样的流程,要到北京清华大学参加笔试面试。 清华研招网的打印申请表被用纯html语言生成,巨难看,没换行。不过有心动手的话自己很容易改,这个没什么影响。 日程安排15号(周六)上午笔试,下午报到,16号博士面试,17号本部工硕,18号深研院,19号贵州大数据院。 清华附近的宾馆非常难订,最后住到了北理工国际交流中心。 ..._自动化九推

ELK使用场景解析_elk场景-程序员宅基地

文章浏览阅读4.4k次。ELK 为什么这么流行?| GIAC 访谈导读:12 月 22 ~ 23 日,GIAC 全球互联网架构大会将于上海举行。GIAC 是高可用架构和 msup 联合推出的面向架构师、技术负责人及高端技术从业人员的技术架构大会。GIAC 于 2016 年 12 月成功举办了第一届,今年的 GIAC 已经有腾讯、阿里巴巴、百度、平安、饿了么、携程、七牛、蚂蚁金服、罗辑思维、摩拜、唯品会,LinkedI..._elk场景

Mybatis 查询中的动态SQL以及复杂SQL映射_mapper 复杂sql-程序员宅基地

文章浏览阅读1.3k次。1. 映射器mapperMybatis的配置文件可以看看:https://mybatis.org/mybatis-3/zh/configuration.html。在平常的项目中对于复杂的查询,我们现在就要使用到动态SQL,来定义 SQL 映射语句了。 首先,我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件。 可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:_mapper 复杂sql