如下代碼均在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