to_char();–轉換為字元串
to_number();–轉換為數值類型
to_date();–轉換為日期類型
1、常用數學運算函數
abs(value) : 傳回value的絕對值
ceil(value) :傳回大于或等于value的最小整數
cos(value) : 傳回value的餘弦值
floor(value) : 傳回等于或小于value的最大整數
mod(value1,value2) : 傳回value1除以value2的餘數
power(value,e) : 傳回value的e次幂
round(value,precision) : 保留precision位小數對value進行四舍五入
sign(value) : 如果value是正則傳回1,是負則傳回-1,否則傳回0.
sqrt(value) : 傳回value的平方根。
trunc(value,precision) : 是一個截取函數,如果precision為正,則往小數點右邊截取precision位,為負則往左邊截取precision位。
2、常用字元串函數
length(value) : 傳回value的長度,value可以是字元串、數字或表達式
lower(value) : 把給定字元串value變為小寫
upper(value) : 把給定字元串value變為大寫
lpad(string,length[,padding]) : 在string左邊填充padding,直到string的長度達到length,如果不指定padding,則預設填充空格
rpad(string,length[,padding]) : 在string右邊填充padding,知道string的長度達到length,如果不指定padding,則預設填充空格
ltrim(string[,trimValue]) : 從左邊删除trimValue,如果不指定trimValue則删除空格
rtrim(string[,trimValue]) : 從右邊删除trimValue,如果不指定trimValue則删除空格
string1 || string2 : 連接配接兩個字元串為一個字元串
initcap(string) : 将字元串的首字母大寫
replace(String,src,dest) : 将string中的src用dest代替
substr(string,start[,count]) : 從start位置開始在string中截取count個字元,如果沒有指定count,則截取到末尾
3、統計函數
avg([distinct] columnName) : 傳回columnName中所有值的平均值,若使用distinct則傳回所有不同的非空值的平均值
count([distinct] value) : 統計記錄數,若使用distinct則隻統計不同的非空數值。value可以是字段名也可以是表達式
max(columnName) : 傳回columnName中的最大值
min(columnName) : 傳回columnName中的最小值
sum(columnName) : 傳回columnName中各值的總和
4、常用日期函數
add_months(date,number) : 傳回date之後number個月的日期
last_day(date) : 傳回date所在月份的最後一天
months_between(date1,date2) :傳回date2減去date1之後的月數
next_day(date,’day’) : 傳回date後的day所在的日期,其中day表示全稱的星期,如Monday
round(date,’format’) : 把date四舍五入到指定的format格式
to_char(date,’format’) : 将日期date轉換為format格式的字元串
to_date(string,’format’) : 将字元串string按照format轉換成日期形式
to_timestamp(string,’format’):将字元串string按照format轉換成時間戳
trunc(date):将日期date的時分秒都設為0
另附幾個數字跟日期互相轉換的自定義函數:
Sql代碼:
–create function 數字轉日期
create or replace function FN_NUMBER_TO_DATE(timeInMillis in number) return date is
Result date;
begin
Result := to_date(‘1970-01-01 00:00:00’, ‘yyyy-MM-dd hh24:mi:ss’) +
timeInMillis / (24 * 60 * 60 * 1000);
return(Result);
end FN_NUMBER_TO_DATE;
–create function 取到幾天以前的日期
create or replace function FN_DAYS_AGO(dest in date, days in number) return date is
Result date;
timeInMillis number;
begin
timeInMillis := FN_DATE_TO_NUMBER(dest) - days*24*60*60*1000;
Result := FN_NUMBER_TO_DATE(timeInMillis);
return(Result);
end FN_DAYS_AGO;
–create function 日期轉數字
create or replace function FN_DATE_TO_NUMBER(inDate in date) return number is
Result number;
begin
Result := (inDate-to_date(‘1970-01-01’, ‘yyyy-MM-dd’)) * 24*60*60*1000;
return(Result);
end FN_DATE_TO_NUMBER;