Oracle数据库数值、日期函数的学习

一、数值函数的学习

  1)number(p,s)、number(p)、number(*,s),p的值为1-38之间。

  2)数值类型的兼容性

    --:numeric(p,s) 相当于number(p,s)

    --:decimal(p,s)或dec(p,s) 相当于number(p,s)

    --:integer或int(不能指定位数)相当于number(38)

    --:smallint相当于number(38)

    --:float相当于number

    --:double precision相当于number

    --:real相当于number

  3)四舍五入函数:round(p1,n)对p1进行四舍五入,n表示保留小数点的位数,不写默认为0,可以为负,表示保留到小数点前n位。

    eg:对数字3.14进行四舍五入,保留两位小数

      select round(3.14,2) from dual;

  4)数字截取函数trunc(p1,n)对p1进行截取,保留小数点后n位,n为负数保留到小数点前n为。

    eg:对数字3.14进行截取,保留小数点后两位

      select trunc(3.14,2) from dual;

  5)取余函数mod(m,n)表示m对n做除法运算,取余数。

    eg:计算100对3取余

      select mod(100,3) from dual;

  6)取整函数

    --:向上取整ceil(m)表示取大于等于m的最小整数

    --:向下取整floor(m)表示取小于等关于m的最大整数

    eg:分别对-3.4进行向上和向下取整

      select ceil(-3.14),ceil(4.5) from dual;

二、日期函数的学习

  1)

   --:to_char(p1,p2) 表示将日期p1按照p2的格式转换成字符串类型,如果格式中有汉字就要用双引号引起来。

     --:to_date(p1,p2) 表示字符串p1按照p2的格式转成日期类型。

  2)last_day(p1) 查看p1月份中的最后一天的日期,p1为date类型。

    eg:查询出生年月日的那个月的最后一天

      select last_day(to_date(‘1997-3-6‘,‘yyyy-mm-dd‘)) from dual;

  3)add_month(p1,n) 在日期p1的基础上增加n个月返回n个月后的日期,n可以为小数,会截取到整数增加 n也可以为负,减n个月。

    eg:推算2018年4月15日的一个月后的日期

      select add_month(to_date(‘2018-4-15‘,‘yyyy-mm-dd‘),1) from dual;

  4)month_between(p1,p2) 计算两个日期p1和p2之间相差的月份,会存在小数情况,计算p1-p2。

    eg:计算当前系统时间和出生年月日相差的月份,保留一位小数。

      select round(month_between(sysdate,to_date(‘1997-3-6‘,‘yyyy-mm-dd‘)),1) from dual;

  5)next_day(date,num)  表示查看参数date的下一个周几的日期,date表示某一日期,num:1~7。

    eg:查看当前系统时间的下一个周日时间

     select next_day(sysdate,1) from dual;

  6)

    --:least(p1,p2,p3.....)多个参数比较显示最小的数据。

    --:greatest(p1,p2,p3....)多个参数比较显示最大的数据。

    要求:参数为同一类型,或者默认转换成第一个参数的类型,字符串比较是比较字符的ascii码。

    eg:统计3,2,1,4,5中的最大值

      select greatest(3,2,1,4,5) from dual;

  7)extract(p1 from p2) 表示从日期p2中提取分量p1,日期的分量:year、month、day、hour、minute、second,日期类型关键字:sysdate和systimestamp。

    eg:分别从sysdate和systimestamp中提取分量年

      select extract(year from sysdate),extract(yaer from systimestamp) from dual;

    

原文地址:https://www.cnblogs.com/lyr999736/p/8850326.html

时间: 2024-10-06 02:35:56

Oracle数据库数值、日期函数的学习的相关文章

Oracle数据库获取uuid函数

Oracle新建系统表时,要求主键为32位uuid,猜测Oracle肯定会提供相关的函数. 翻阅相关文档,果然发现Oracle提供的函数 sys_guid() 用于获取32位uuid,简单使用为 select sys_guid() from dual; 该函数返回32位的uuid为大写,可以使用 lower(sys_guid()) 转为小写. Oracle数据库获取uuid函数

oracle 数值 日期函数

数值函数 常用的处理数值的函数有如下: No. 函数名 含义 1 数字 round(列 | 数字[.小数位]) 返回数据四舍五入后的值 2 数字 trunc(列 | 数字[.小数位]) 数据截取,即不会进位 3 数字 mod(列 | 数字, 列 | 数字) 求余数 日期函数 日期有三个操作公式: 日期 + 数字 = 日期(n天之后的日期) 日期 – 数字 = 日期(n天之前的日期) 日期 – 日期 = 数字(日期之间的天数) 示例1:显示三周前(21天)的日期. select sysdate-2

Oracle数据库常用SQL函数

1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中进行运算,并不会修改数据库中的数据) 2.Sql函数可以分为组函数和单行函数. –单行函数对单个数值进行操作,并返回一个值–组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句 3.单行函数的分类: 单行函数分为字符函数.数字函数.日期

sql数据库中日期函数---2017-04-12

一.SQLServer时间日期函数详解 1.  当前系统日期.时间 select getdate() 2. dateadd      在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15')      --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数. select datediff(day,'2004-09-01','2004

oracle数据库数值类型

---恢复内容开始--- 内容摘自网络 Oracle的数值类型有int,number,float,decimal,numberic等. NUMBER类型 定义 定义格式NUMBER (precision,scale) precision表示数字中的有效位(从左边第一个不为0的数算起,小数点和负号不计入有效位数),取值范围为[1-38]默认38. scale表示精确到多少位,取值范围为[-84-127],默认值为0.大于零时,表示数字精确到小数点右边的位数:小于零时,将把该数字取舍到小数点左边的指

日期函数(学习笔记)

--********************日期函数--获取当前系统时间SELECT SYSDATE FROM dual;--查询距离今天3天后,和3天前的日期SELECT SYSDATE 今天,SYSDATE-3 三天前,SYSDATE+3 三天后 FROM dual;--查询出每个员工入职到今天的入职天数,以及十天前每个员工的入职天数SELECT e.hiredate 入职日期,SYSDATE 今天,SYSDATE-e.hiredate 入职到今天的天数,SYSDATE-10-e.hired

oracle中的日期函数的使用

TO_DATE格式(以时间:2007-11-02   13:45:25为例) Year:               yy two digits 两位年                显示值:07         yyy three digits 三位年                显示值:007         yyyy four digits 四位年                显示值:2007 Month:               mm    number     两位月     

【小计】PostgreSQL实现Oracle的trunc日期函数功能

create or replace function trunc(p_timestamp timestamp with time zone, p_formart varchar default 'DD')  returns timestamp without time zone as $$ declare  v_timestamp timestamp := null;  v_formart varchar(10) := upper(p_formart); begin  /*  * 函数功能:对日

oracle数据库报表汇总函数grouping

前两天同事问一个oracle使用grouping完成一个统计报表的功能,这个函数帅呆了.开发分组报表直接一个SQL就搞定. grouping(columnA)函数的意思:当前行如果是由rollup汇总产生的,那么columnA这个字段值为1否则为0 元数据: 通过grouping查询后的数据: sql: select decode(grouping(f_line)+grouping(f_workarea),1,'小计',2,'总计',f_workarea) f_workarea, decode(