如下代码均在PL/SQL工具中测试经过函数
begin
--绝对值
dbms_output.put_line('绝对值: ' || ABS(-9));
--向上取整
dbms_output.put_line('向上取整: ' || CEIL(-124.2));
--向下取整
dbms_output.put_line('向下取整: ' || FLOOR(-124.2));
--乘方运算 POWER(a,b) a的b次方
dbms_output.put_line('乘方运算: ' || POWER(4, 2));
--四舍五入 round 有点难度
dbms_output.put_line('四舍五入: ' || ROUND(123.456, 2));
dbms_output.put_line('四舍五入: ' || ROUND(123.456, 1));
dbms_output.put_line('四舍五入: ' || ROUND(123.456, 0));
dbms_output.put_line('四舍五入: ' || ROUND(123.456, -1));
dbms_output.put_line('四舍五入: ' || ROUND(123.456, -2));
dbms_output.put_line('四舍五入: ' || ROUND(123.456, -3));
-- 所有舍弃 注意与round进行比较
dbms_output.put_line('非四舍五入: ' || trunc(123.456, 2));
dbms_output.put_line('非四舍五入: ' || trunc(123.456, 1));
dbms_output.put_line('非四舍五入: ' || trunc(123.456, 0));
dbms_output.put_line('非四舍五入: ' || trunc(123.456, -1));
dbms_output.put_line('非四舍五入: ' || trunc(123.456, -2));
dbms_output.put_line('非四舍五入: ' || trunc(123.456, -3));
--ASCII码
dbms_output.put_line('ASCII码: ' || ASCII('A')); --65 a:97
--LENGTH 不是字节并且不包含尾空格
dbms_output.put_line('LENGTH: ' || LENGTH('李芳'));
--字母大小写转换
dbms_output.put_line('字母大写转换小写: ' || UPPER('a'));
dbms_output.put_line('字母小写转换大写: ' || LOWER('B'));
end;工具
结果:
测试
补充:
begin
-- 求余
dbms_output.put_line('求余:' || mod(5, 2));
-- 求模
dbms_output.put_line('求模:' || trunc(7 / 2));
-- 开方
dbms_output.put_line('开方:' || sqrt(4));
-- 对数
dbms_output.put_line('对数:' || log(2, 16));
dbms_output.put_line('天然对数:' || ln(100));
-- e的x次方
dbms_output.put_line('e的x次方:' || exp(2));
-- 判断一个数的正负 1:+ 0:0 -1:-
dbms_output.put_line('2判断正负:' || sign(2));
dbms_output.put_line('0判断正负:' || sign(0));
dbms_output.put_line('-2判断正负:' || sign(-2));
end;
结果:spa
3.日期函数
begin
--日期
dbms_output.put_line('当前日期: ' || sysdate);
dbms_output.put_line('当前日期转换为字符型再输出: ' || TO_CHAR(sysdate));
--当前月份的最后一天
dbms_output.put_line('当前月的最后一天: ' || last_day(sysdate));
--字符转为日期 注意格式 年日月
dbms_output.put_line('字符转为日期: ' || to_date('2015-10-03', 'yyyy-dd-mm'));
--2015-02-05到2015-10-05之间的月份数目 第一个参数减去第二个参数
dbms_output.put_line(months_between(to_date('2015-10-05', 'yyyy-mm-dd'),
to_date('2015-02-05', 'yyyy-mm-dd')));
end;
结果:ast
补充:
-- 时间推移,减法相似 本例结合存储过程
create or replace procedure dateTest as
d1 varchar2(20);
d2 varchar2(20);
d3 varchar2(20);
d4 varchar2(20);
d5 varchar2(20);
d6 varchar2(20);
d7 varchar2(20);
d8 varchar2(20);
begin
select to_char(sysdate, 'yyyy-mm-dd HH24:MI:SS') into d1 from dual;
-- 添加月
select to_char(add_months(sysdate, 1), 'yyyy-mm-dd HH24:MI:SS')
into d2
from dual;
select to_char(add_months(sysdate, 12), 'yyyy-mm-dd HH24:MI:SS')
into d3
from dual;
-- 添加天
select to_char(sysdate + 7, 'yyyy-mm-dd HH24:MI:SS') into d4 from dual;
select to_char(sysdate + 1, 'yyyy-mm-dd HH24:MI:SS') into d5 from dual;
-- 添加小时
select to_char(sysdate + 1 / 24, 'yyyy-mm-dd HH24:MI:SS')
into d6
from dual;
-- 添加分钟
select to_char(sysdate + 1 / 24 / 60, 'yyyy-mm-dd HH24:MI:SS')
into d7
from dual;
-- 添加秒
select to_char(sysdate + 1 / 24 / 60 / 60, 'yyyy-mm-dd HH24:MI:SS')
into d8
from dual;
dbms_output.put_line('当前日期:' || d1);
dbms_output.put_line('当前日期加1个月:' || d2);
dbms_output.put_line('当前日期加12个月:' || d3);
dbms_output.put_line('当前日期加1周:' || d4);
dbms_output.put_line('当前日期加1天:' || d5);
dbms_output.put_line('当前日期加1小时:' || d6);
dbms_output.put_line('当前日期加1分钟:' || d7);
dbms_output.put_line('当前日期加1秒钟:' || d8);
end dateTest;sed
begin
dateTest();
end;
运行结果:date
补充2:
--trunc函数精析
select sysdate as now,
trunc(sysdate, 'yy') as 本年第一天,
trunc(sysdate, 'mm') as 本月第一天,
trunc(sysdate, 'dd') as 当天,
trunc(sysdate, 'd') as 本周第一天,
to_char(sysdate, 'w') as 本月第几周,
to_char(sysdate, 'd') as 本周第几天,--周日为第一天
trunc(sysdate, 'hh') as 整点小时,
trunc(sysdate, 'mi') as 整点时分
from dual;
运行结果:select
4.统计函数
--统计
select count(0) from service_resource_used;
--最大
select max(cpuusedper) from service_resource_used;
--最小
select min(cpuusedper) from service_resource_used;
--平均
select avg(cpuusedper) from service_resource_used;
--综合
select count(0) as 总记录数,
max(cpuusedper) as cpu最大利用率,
min(cpuusedper) cpu最小利用率,
avg(cpuusedper) cpu平均利用率
from service_resource_used;service
结果:im