一、数值函数的学习
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