字符函数、数字函数和日期函数

来源:互联网 发布:广联达软件怎么使用 编辑:程序博客网 时间:2024/05/22 09:00

一、官档

Book → SQL Language Reference → 5 Functions → Single-Row Functions

二、字符函数

大小写转换函数
函数说明UPPER语法:UPPER(string)说明:返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的.例子:
SELECT UPPER('AaBbCcDd') "AaBbCcDd"  FROM DUAL;
LOWER语法:LOWER(string)说明:返回小写的string。不是字母的字符不变。
  • 如果string是CHAR数据类型的,那么结果也是CHAR类型的。
  • 如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的。
例子:
SELECT LOWER('AaBbCcDd') "AaBbCcDd"  FROM DUAL;
INITCAP语法:INITCAP(string)说明:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符进行分隔。不是字母的字符不变动。例子:
SELECT INITCAP('ryan') UPP  FROM DUAL;
字符处理函数
函数说明CONCAT语法:CONCAT(string1,string2)说明:返回string1,并且在后面连接string2。例子:
SELECT CONCAT('010-','88888888')||'转23' 电话  FROM DUAL;
SUBSTR语法:SUBSTR(string,a[,b])说明:返回从字母为值a开始b个字符长的string的一个子字符串.如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字 符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.例子:
SELECT SUBSTR('13088888888',3,8)  FROM DUAL;
LENGTH语法:LENGTH(string)说明:返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间. 如果string是NULL,返回结果是NULL,而不是0.例子:
SELECT length('Ryan') from dual;
INSTR语法:INSTR(string1, string2, [a,b])说明:得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.例子:
SELECT INSTR('oracle traning','ra',1,2) instring  FROM DUAL;
LPAD | RPAD语法:LPAD(string1,x[,string2]),RPAD(string1,x[,string2])说明:返回在X字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制后,进行左|右填充。如果string2多于X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行左|右填充。X是使用显示长度可以比字符串的实际长度要长。例子:
SELECT RPAD('Ryan',10,'*'), LPAD('Ryan',10,'*')  FROM DUAL;
TRIM语法:TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1)说明:
  1. 如果没有指定任何参数则oracle去除c1头尾空格
  2. 如果指定了参数则会去掉c1头部c2
  3. 如果指定了leading参数则会去掉c1头部c2
  4. 如果指定了trailing参数则会去掉c1尾部c2
例子:
  1. 例一:
    SELECT TRIM(' What is tHis')   FROM DUAL;
  2. 例二:
    SELECT TRIM('W' FROM 'What is tHis w W')   FROM DUAL;
  3. 例三:
    SELECT TRIM(LEADING 'W' FROM 'What is tHis w W')   FROM DUAL;
  4. 例四:
    SELECT TRIM(TRAILING 'W' FROM 'What is tHis w W')   FROM DUAL;
REPLACE语法:REPLACE(string,search_str[,replace_str])说明:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符 串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。例子:
SELECT REPLACE('He love you','He','I')  FROM DUAL; 

三、数字函数

函数说明ROUND语法:ROUND(x[,y])说明:返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数, 那么舍入到小数点左边相应的位上,Y必须为整数。例句:
SELECT ROUND(55.5), ROUND(-55.4)  FROM DUAL;
TRUNC语法:TRUNC(x[,y])说明:截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置例句:
SELECT TRUNC(124.1666,-2), TRUNC(124.16666,2)  FROM DUAL; 
MOD语法:MOD(被除数,除数)说明:求余函数,如果除数为0,则返回被除数。例句:
SELECT MOD(10,3),       MOD(3,3),       MOD(2,3)  FROM DUAL;

四、日期函数

函数说明SYSDATE语法:SYSDATE说明:返回当前日期和时间。例句:
SELECT SYSDATE  FROM DUAL;
MONTHS_BETWEEN语法:MONTHS_BETWEEN(f,s)说明:返回两个日期间的 月份例句:
SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2017-11-12','YYYY-MM-DD'))  FROM DUAL;
ADD_MONTHS语法:ADD_MONTHS(d,n)说明:返回把月份数加到日期上的新日期例句:
SELECT ADD_MONTHS(SYSDATE,2)  FROM DUAL;
NEXT_DAY语法:NEXT_DAY(d, day_of_week)说明:返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。例句:
SELECT NEXT_DAY(SYSDATE,1)  FROM DUAL;
LAST_DAY语法:LAST_DAY(日期)说明:本月最后一天例句:
SELECT LAST_DAY(SYSDATE)  FROM DUAL;
ROUND语法:ROUND(date,[fmt])说明:按指定格式对日期进行四舍五入例句:
SELECT ROUND(SYSDATE,'YEAR')  FROM DUAL;
TRUNC语法:TRUNC(date,[fmt])说明:返回截取时间部分后的DATE,如果有fmt部分的设置,则返回与该部分最近的日期例句:
SELECT TRUNC(SYSDATE,'YEAR')  FROM DUAL;
阅读全文
0 0
原创粉丝点击