数值函数:
1.round:返回四舍五入后的值
round(数字,参数) 参数不写默认为0
后面的参数指定了返回值的精度,或者说是从小数点第几位开始四舍五入,如果不带后面的参数,则默认为四舍五入取整数。精度截取以小数点为分界线,正数表示从以左到右截取并四舍五入,负数表示从右往左截取并四舍五入,精度值可以为小数。
select round(1992.54, 1) from dual;
select round(1992.54) from dual;
select round(1992.54, -1) from dual;
2.trunc:返回截取后的值(不会四舍五入)
trunc(数字, 参数) 参数不写默认为0 ,精度截取也是以小数点为分界线,正数为从左到右,负数表示从右到左,精度值可以为小数
select trunc(1992.92) from dual;
3.mod:返回余数
mod(数字,参数) 数字除以参数,参数不能不写
select mod(2001, 5) from dual;
日期函数
日期操作公式
日期 + 数字 = n天之后的日期
日期 - 数字 = n天之前的日期
日期 - 日期 = 日期之间有多少天
1.sysdate:获取当前时间
select sysdate from dual;
select sysdate + 1 from dual;
select sysdate - 1 from dual;
select sysdate - (sysdate -1) from dual;
2.add_months:返回n个月后的日期
add_months(日期,参数) 参数为增加的月份
select add_months(sysdate, 1) from dual;
3.months_between:返回两个日期之间相差的月份
months_between(日期, 日期)
select months_between(sysdate, (sysdate + 30)) from dual;
4.last_day:返回日期所在的最后一天
select last_day(sysdate) from dual;
5.next_day:返回日期在下周,星期X的日期
next_day(日期, 参数) 参数必须有且 1 <= 参数 <= 7
select next_day(sysdate, 1) from dual;
转换函数
1.to_char:将其他格式转换为字符串格式
转换日期是可指定返回值:yyyy年MM月dd日hh小时mi分钟ss秒
select to_char(sysdate, 'yyyy') from dual;
2.to_date:将其他格式转换为日期格式
to_date(数字/字符串, 参数) 参数为指定日期格式,数字和字符串格式要与指定日期格式对应
select to_date(20171120, 'yyyyMMdd') from dual;
3.to_number:将其他格式转换为数字格式
to_num(字符串)
使用to_number的时候,一定要确保所转换字段是可转换为数字的
select to_number('123') from dual;
其他函数
1.nvl:空值替换,如果传入的数据时null,则使用默认值,如果不是null,则使用原始数据。
nvl(数据, 替换值)
2.decode:条件取值,设置的内容会与每一个比较内容进行比较,如果内容相同,则使用显示内容进行输出,如果都不行同,使用默认内容输出。
decode(列 | 字符串 | 数值,比较内容1,显示内容1, 比较内容2,显示内容2,…[,默认显示内容])