oracle学习第三天常用函数

1) trunc函数,用于截断数字,

截断数字,用法为:trunc(n1,n2),n1表示要被截断的数字,n2表示要截断到那位,但是不会进行四舍五入。

n2还可以表示负数,表示截断到小数点前,意思就是小数点后面的都不要了,最后结果是以0结尾的整数。

当trunc(n1,n2)当n2为负数时,-1表示个位为0,-2表示个位和十位都为0,后面一次类推。
SQL> select trunc(13.1) from dual;

TRUNC(13.1)
-----------
13

SQL> select trunc(13.23,2)from dual;

TRUNC(13.23,2)
--------------
13.23

SQL> select trunc(13.23,1)from dual;

TRUNC(13.23,1)
--------------
13.2

SQL> select trunc(13.23432,3)from dual;

TRUNC(13.23432,3)
-----------------
13.234

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

TRUNC(13.2,-1)
--------------
10

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

TRUNC(119.2,-1)
---------------
110

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

TRUNC(120.2,-1)
---------------
120

SQL> select trunc(120.2,-2)from dual;

TRUNC(120.2,-2)
---------------
100

SQL> select trunc(1220.11,-3)from dual;

TRUNC(1220.11,-3)
-----------------
1000

SQL> select trunc(12230.11,-4)from dual;

TRUNC(12230.11,-4)
------------------
10000

2)trunc用于截断日期

SQL> select trunc(sysdate)from dual;//返回当前日期

TRUNC(SYSDATE)
--------------
2019/05/21

SQL> select trunc(sysdate,‘mm‘)from dual;//返回当前月份的第一天

TRUNC(SYSDATE,‘MM‘)
-------------------
2019/05/01

SQL> select trunc(sysdate,‘yyyy‘)from dual;//返回当前年份的第一天

TRUNC(SYSDATE,‘YYYY‘)
---------------------
2019/01/01

SQL> select trunc(sysdate,‘dd‘)from dual;//返回当前日期

TRUNC(SYSDATE,‘DD‘)
-------------------
2019/05/21

SQL> select trunc(sysdate,‘d‘)from dual;//返回当前星期的第一天(为星期天,工作的第一天为星期一)

TRUNC(SYSDATE,‘D‘)
------------------
2019/05/19

SQL> select trunc(sysdate,‘hh‘)from dual;//返回当前小时

TRUNC(SYSDATE,‘HH‘)
-------------------
2019/05/21 15:00:00

SQL> select trunc(sysdate,‘mi‘)from dual;//返回当前时间的分钟,没有秒的精确,只有毫秒。

TRUNC(SYSDATE,‘MI‘)
-------------------
2019/05/21 15:20:00

3)add_months(时间,数字)表示可以得到某一时间之前或之后n个月的时间;

SQL> select add_months(sysdate,1)from dual;//获取当前时间一个月之后的时间

ADD_MONTHS(SYSDATE,1)
---------------------
2019/06/21 15:37:02

SQL> select add_months(sysdate,6)from dual;//获取到当前时间半年之后的时间

ADD_MONTHS(SYSDATE,6)
---------------------
2019/11/21 15:37:20

4)months_between函数返回两个日期之间的月份数。如果两个日期月份内天数相同,或者都是某个月的最后一天,返回一个整数,否则,返回数值带小数,以每天1/31月来计算月中剩余天数。

MONTHS_BETWEEN (x, y)用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数。

当x 和 y 之间的月份之差不是整月的时候,可以采用小数表示。

months_between(date1, date2),必须注意的是,date1与date2都为Date类型,不然会出现错误。须用to_date(‘’,‘‘) 来转换为日期格式,才能参加计算。

SQL> select months_between(sysdate,‘10-5月-20‘)from dual;

MONTHS_BETWEEN(SYSDATE,‘10-5月-20‘)
----------------------------------
-11.6239557198327

select months_between(‘10-5月-20‘,sysdate)from dual;

MONTHS_BETWEEN(‘10-5月-20‘,SYSDATE)
----------------------------------
11.6239329450418

SQL> select months_between(‘21-5月-20‘,sysdate)from dual;

MONTHS_BETWEEN(‘21-5月-20‘,SYSDATE)
----------------------------------
12

原文地址:https://www.cnblogs.com/jasonboren/p/10900238.html

时间: 2024-10-12 23:03:26

oracle学习第三天常用函数的相关文章

oracle学习 第三章 常用的SQL*PLUS命令 ——02

今天接着昨天的RUN命令继续讲. 3.5 n(设置当前行)命令和A(PPEND)(附加)命令 设想,你输入了例3-10的查询语句 例 3-10 SQL> SELECT ename 2 FROM emp; 例 3-10 结果 看到以上输出时,您发现在SELECT子句中忘了job,sal.这时您又如何修改您的SELECT子句呢?首先您应该使用SQL*PLUS的L(LIST)命令来显示SQL缓冲中的内容. 例 3-11 SQL> L 例 3-11 结果 在例3-11显示的结果中,2后面的"

Oracle学习笔记六 SQL常用函数

函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类: 单行函数对于从表中查询的每一行只返回一个值 可以出现在 SELECT 子句中和 WHERE 子句中 单行函数可以大致划分为: 1.日期函数 2.数字函数 3.字符函数 4.转换函数 5.其他函数 单行函数 日期函数 日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果 日期函数包括: 1.ADD_MONTHS 2.MONTHS_BETWEEN 3.LAST_D

oracle学习 第三章 常用的SQL*PLUS命令 ——01

下面我们开始新的一章学习! 当输入SQL语句时,该语句被存在SQL缓冲区中(即一个内存区).这个SQL缓冲区很小,只能存一个SQL语句,当下一条SQL语句输入时,原来在缓冲区中的SQL语句被覆盖掉.SQL*PLUS是一个工具(环境).正像我们所看到的,我们可以用它来输入SQL语句.为了有效的输入和编辑SQL语句,SQL*PLUS还提供了一些常用的命令.与SQL语句不同的是SQL*PLUS的命令是可以缩写的.下面就简单的介绍一些常用的SQL*PLUS命令. 3.1 DESC[RIBE]命令 一般在

MySQL学习笔记(三):常用函数

一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是null. 二:数值函数 注意的几个细节: 1.truncate(x,y) 和 round(x,y) 都能截断,只是round会四舍五入,而truncate不会. 三:日期和时间函数 四:流程函数 五:其他函数

Oracle学习(四)_SQL函数

--第一部分:SQL基础 --ch1 简单查询 --ch2 查询基本概念 --ch3 数据过滤 --第二部分:多表操作 --ch4 集合理论 --ch5 内连接 --ch6 外连接 --ch7 子查询 --第三部分:数据分组 --ch8 简单统计 --ch9 数据分组 --ch10 分组数据过滤 --第四部分:SQL函数 --ch11 内置函数 --ch12 case表达式 --第五部分:DML语句 --ch13 插入数据 --ch14 修改数据 --ch15 删除数据 ------------

Oracle学习笔记三 SQL命令

SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)               下面是这四种SQL语言的详细笔记: Oracle学习笔记三 SQL命令(二):SQL操作语言类别 Oracle数据类型 创建表时,必须为各个列指定数据类型 以下是 Oracle 数据类型的类别: 字符数据类型 CHAR类型 当需要固定长度的字符串时,使用 CHAR 数据类型. CHAR 数据类型存储字母数字值. CH

Oracle 学习(三)多表联查

目录 Oracle 学习(三)多表联查 一.99语法 二.至少两种方式行转列 三.分页 Oracle 学习(三)多表联查 @ 一.99语法 Oracle学习(二)中我们学习了92语法,现在我们学习一下99语法 sql 1999语法 1.1.cross join 笛卡尔积 select * from emp cross join dept; 1.2.natural join 自然连接 当两个表不具有相同列名,进行cross join,具有相同列名,自动匹配 select * from emp e

Oracle学习第三篇—多行函数

0 order by asc/desc 默认升序 order by 列的名字|表达式|别名|序号 把空放在后边:order by desc nulls last 1分组函数--会自动滤空值 count(*|distinct|clumn) max min sum avg select sum(comm)/count(*) 一, sum(comm)/count(comm) 二,avg(comm) 三from emp 2 过滤解决,空值替换函数,NVL(comm,0) 1 select count(*

Oracle笔记(三)单行函数

-函数 函数像一个黑盒子一样(看不到里边的构造),有参数返回值,可以为我们完成一定的功能. -单行 这种函数会对结果中的每一行计算一次,每行返回一个结果,单行概念区别于分组函数. 单行函数主要分为以下五类:字符函数.数字函数.日期函数.转换函数.通用函数: 一.字符型函数 ---字符处理-大小写转换 例子:写一个SQL,将'I love Sql'转换成全大写,全小写和首字母大写的形式. SELECT UPPER ('I love Sql'),LOWER('I love Sql'),INITCAP