函數(shù)名稱 | 描述 |
---|---|
LOWER(X) | 將字符串X轉(zhuǎn)換為小寫,只影響字母字符串 |
UPPER(X) | 將字符串X轉(zhuǎn)換為大寫,只影響字母字符串 |
INITCAP(X) | 將字符串X中每一個(gè)單詞的第一個(gè)字母轉(zhuǎn)換為大寫,其他的均為小寫,只影響字母字符串 |
NLS_INITCAP(X) | 與INITCAP相同,它可以使用NLSSORT指定的分類的方法 |
NLS_LOWER(X) | 與LOWER相同,它可以使用NLSSORT指定的分類的方法 |
NLS_UPPER(X) | 與UPPER相同,它可以使用NLSSORT指定的分類的方法 |
CONCAT(X,Y) | 連接兩個(gè)字符串,與“ |
INSTR(X,Y) | 返回Y在X中的位置,如果Y不存在于X中,則返回0 |
INSTRB(X,Y) | 返回Y在X中的位置,如果Y不存在于X中,則返回0,對于單字節(jié)字符系統(tǒng),返回的值以字節(jié)為單位 |
LENGTH(X) | 返回X的長度,如果值是未知的,則返回NULL |
LENGTHB(X) | 與LENGTH(X)相同,對于單字節(jié)字符系統(tǒng),返回的值以字節(jié)為單位 |
LPAD(X,I,Y) | 用字符串Y按指定填充數(shù)I填充X字符串的左邊 |
RPAD(X,I,Y) | 用字符串Y按指定填充數(shù)I填充X字符串的右邊 |
LTRIM(X) | 裁剪字符串左邊的空格 |
RTRIM(X) | 裁剪字符串右邊的空格 |
TRIM(X) | 裁剪字符串兩邊的空格 |
SUBSTR(string,x[,y]) | 可選的y表示y個(gè)字符長度,如果x為0,則認(rèn)為是從string開始的位置,如果x為正數(shù),則返回的字符是從左邊開始向右邊計(jì)算;如果x為負(fù)數(shù),則返回的字符是從字符串穿末尾的地方開始向左邊開始計(jì)算。如果沒有y,則設(shè)置為整個(gè)字符串的長度,如果給定的y小于1,則SUBSTR返回NULL。如果x或y是浮點(diǎn)數(shù),則SUBSTR在處理前先將x和y截?cái)酁檎麛?shù)再進(jìn)行計(jì)算。 |
SUBSTRB | 與SUBSTR相同,以字節(jié)數(shù)而非字符數(shù)返回字符串的一部分 |
REPLACE(string,searchstr[,replacestr]) | 用replacestr取代string中的searchstr,如果沒有replacestr,則所有searchstr都被刪除。 |
TRANSLATE(string,fromstr,tostr) | 使用tostr替換掉在string中出現(xiàn)的所有fromstr,功能與REPLACE相似,只是TRANSLATE函數(shù)中的tostr參數(shù)不能缺少,更不能為空白字符串,因?yàn)镺racle會(huì)將空白字符串理解為NULL,因此TRANSLATE的結(jié)果也將為NULL。 |
SOUNDEX | 返回字符串的語言表示 |
函數(shù)名稱 | 描述 |
---|---|
ROUND(x,y) | 四舍五入x的值為y位小數(shù)位,如果y忽略,則無小數(shù)位,如果y為負(fù)數(shù),則小數(shù)點(diǎn)左邊的數(shù)被四舍五入??梢杂糜谌掌陬愋偷闹怠?/td> |
TRUNC(x,y) | 截?cái)鄕的值到y(tǒng)位小數(shù),如果y被忽略,那么y的默認(rèn)值為0??梢杂糜谌掌陬愋偷闹?。 |
MOD(x,y) | 返回x除以y的余數(shù) |
在日期函數(shù)中,比較常見的是對日期進(jìn)行運(yùn)算的函數(shù)。
從日期加或者減一個(gè)數(shù),結(jié)果是一個(gè)日期值。
兩個(gè)日期相減,得到兩個(gè)日期之間的天數(shù)。
如:
SELECT SYSDATE - 1 當(dāng)前日期減1, SYSDATE - (SYSDATE - 100) 兩個(gè)日期相減, SYSDATE + 5 / 24 當(dāng)前日期加5小時(shí) FROM DUAL;SELECT SYSDATE-(SYSDATE-100) FROM DUAL;
函數(shù)名稱 | 描述 |
---|---|
MONTH_BETWEEN(date1,date2) | 計(jì)算date1和date2之間的月數(shù),其結(jié)果可以是正的也可以是負(fù)的。如果date1大于date2,則是正的,反之,是負(fù)的。結(jié)果的小數(shù)部分表示月的一部分。 |
ADD_MONTH(date,n) | 添加n個(gè)日歷月到date。n的值必須是整數(shù),但可以是負(fù)的。 |
NEXT_DAY(date,’char’) | 計(jì)算在date之后的下一個(gè)周(‘char’)的指定天的日期。char的值可能是一個(gè)表示一天的數(shù)或者是一個(gè)字符串 |
LAST_DAY(date) | 計(jì)算包含date的月的最后一天的日期 |
ROUND(date[,’fmt’]) | 返回用格式化模式fmt四舍五入到指定單位的date,如果格式模式fmt被忽略,date被四舍五入到最近的天 |
TRUNC(date[,’fmt’]) | 返回用格式化模式fmt截?cái)嗟街付▎挝坏膸斓臅r(shí)間部分的date,如果格式模式fmt被忽略,date被截?cái)嗟阶罱奶?/td> |
如:
BEGIN DBMS_OUTPUT.put_line ( '兩個(gè)日期之間的差異月份:' || MONTHS_BETWEEN ('1995-01-01', '1994-11-01') ); DBMS_OUTPUT.put_line ('向指定日期添加月份:' || ADD_MONTHS (SYSDATE, 6)); DBMS_OUTPUT.put_line ('下個(gè)星期五為:' || NEXT_DAY (SYSDATE, '星期五')); DBMS_OUTPUT.put_line ('顯示當(dāng)前月的最后1天:' || LAST_DAY (SYSDATE));END;
SELECT TRUNC (SYSDATE, 'MONTH'), ROUND (SYSDATE, 'YEAR'), ROUND (SYSDATE, 'DAY'), TRUNC (SYSDATE, 'YEAR'), TRUNC (SYSDATE, 'DAY'), TRUNC (SYSDATE, 'HH24'), TRUNC (SYSDATE, 'MI') FROM DUAL;
注意,要使上述的結(jié)果能正確運(yùn)行,要確保使用ALTER SESSION語句修改了nls_date_format
日期格式,否則輸入將會(huì)引發(fā)異常。
函數(shù)名稱 | 描述 |
---|---|
CHARTOROWID | 將包含外部格式的ROWID的CHAR或VARCHAR2數(shù)值轉(zhuǎn)換為ROWID格式 |
CONVERT | 將一個(gè)字符集轉(zhuǎn)換到另一個(gè)字符集 |
HEXTOCHAR | 將十六進(jìn)制字符串轉(zhuǎn)換為RAW類型的值 |
ROWIDTOCHAR | 將ROWID轉(zhuǎn)換為字符串表示形式 |
TO_BLOB | 將指定的值轉(zhuǎn)換為BLOB類型的值 |
TO_CHAR | 將日期型或數(shù)字類型轉(zhuǎn)換為VARCHAR2類型的值 |
TO_CLOB | 將指定的值轉(zhuǎn)換為CLOB類型的值 |
TO_DATE | 將CHAR或VARCHAR2字符串強(qiáng)制轉(zhuǎn)換為日期值 |
TO_LABEL | 將CHAR或VARCHAR2字符串強(qiáng)制轉(zhuǎn)換為MLSLABEL |
TO_MULTI_BYTE | 將任何單字節(jié)字符串轉(zhuǎn)換為多字節(jié)字符串 |
TO_NUMBER | 將CHAR或VARCHAR2字符串強(qiáng)制轉(zhuǎn)換為NUMBER值 |
TO_SINGLEBYTE | 將任何多字節(jié)字符串轉(zhuǎn)換為單字節(jié)字符串 |
聯(lián)系客服