1、-把最左边的字符去掉,使其第一个字符不在其中select ltrim(MismiD-RPAD右侧用字符串补足到一定长度select RPAD(-把最右边的字符去掉,使其第一个字符不在其中select Rtrim(-替换select REPLACE(uptownupdown-substr和substrbselect SUBSTR(Message,1,4) from dual;ABCDEFG,5) from dual;select substrb(国际劳动节国营农场,2) from dual;,4,8) from dual;,3,8) from dual;-发音select SOUNDEX(daw
2、es) Dawes,SOUNDEX(daws) Daws, SOUNDEX(dawson-translateselect TRANSLATE(ABCDefghijklmneg替代) test from dual;select TRIM( Space padded 0.o0. ) trim from dual;select UPPER(abDCCfasdfsdafasdf-【数学函数】所有函数都有数字参数并返回数字值。所有三角函数的操作数和值都是弧度而不是角度,-oracle没有提供内建的弧度和角度的转换函数。select abs(-10.234) from dual;select acos(-
3、1),acos(1) from dual;select asin(1),asin(0) from dual;select atan(1),atan(-1) from dual;select ceil(-2),ceil(5.1) from dual;select cos(-1) from dual;select cosh(1) from dual;select exp(3),exp(2),exp(1) from dual;select Floor(-3.2),floor(5.91) from dual;select LN(2) from dual;select Log(10,2),log(2,1
4、0),log(10,1000) from dual;select MOD(19,3),MOD(20,3),MOD(21,3) from dual;select POWER(3,4),POWER(4,2) from dual;select ROUND(12345,-2),ROUND(12345.54321,2),ROUND(-234234.9800234) FROM dual;select SIGN(-10),SIGN(0),SIGN(1000) from dual;select sin(1.57) from dual;select sinh(2.34) from dual;select SQR
5、T(2),sqrt(3) from dual;select TAN(1.2) from dual;select TANH(2.32) from dual;select trunc(2.2342342,5),trunc(2.3234234) from dual;-【日期函数】操作DATE数据类型,绝大多数都有DATE数据类型的参数-增加月select sysdate,Add_MONTHS(sysdate,1),Add_MONTHS(TO_Date(2008-05-31 18:18:18yyyy-MM-dd HH24:MI:SS),1),),2)from dual;-每月最后一天 只区别了日期,
6、时间没有区别select Last_day(sysdate) from dual;-如果d1和d2的日的日期都相同,或者都使该月的最后一天,那么将返回一个整数,否则会返回的结果将包含一个分数。select MONTHS_BETWEEN(sysdate,To_Date(2008-05-31 14:40:00) fromdual;PL/SQL函数总结收藏新一篇:一些系统包和函数的使用|旧一篇:垃圾回收number数字类型函数 ABS(x) 函数,此函数用来返回一个数的绝对值。ACOS(x)函数,返回X的反余弦值。X范围从1到-1,输入值从0到派,以弧度为单位。ASIN(x)函数,返回X的反正弦值。
7、X范围从1到-1,输入值从-PI/2到PI/2,以弧度为单位。ATAN(x)函数,返回X的反正切值。输入值从-PI/2到PI/2,以弧度为单位。BITAND(x,y)函数,返回X和Y的与结果。X和Y必须为非负整数。注意没有BITOR函数,但是在UTL_RAW包中有用 于RAW值的位操作符。CEIL(x)函数,用来返回大于或等于X的最小整数。COS(x)函数,返回x的余弦值。x是以弧度表示的角度。COSH(x)函数,返回X的双曲余弦。EXP(x)函数,与power(x,y)函数类似,不过不用指明基数,返回E的X次幂。E=2.71828183.FLOOR(x)函数,用来返回小于或等于X的最大整数。
8、LN(x)函数,返回x的自然对数。x必须大于0。LOG(x,y)函数,返回以X为底Y的对数。底必须是不为0和1的正数,Y是任意正数。MOD(被除数,除数)求余函数,如果除数为0,则返回被除数。POWER(x,y)函数,返回X的Y次幂。底X和指数Y都不必是正整数,但如果X是负数的话,Y必须是整数。ROUND(x,y)函数,返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数, 那么舍入到小数点左边相应的位上,Y必须为整数。SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回1,若为一个负数则返回-1, 若为0则仍返回0,有点像把模拟量数字化的意思。S
9、IN(x)函数,返回X的正弦。SINH(x)函数,返回x的双曲正弦。SQRT(x)函数,返回x的平方根,x不能是负数。TAN(x)函数,返回x的正切。TANH(x)函数,返回x的双曲正切。TRUNC(x,y)截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置WIDTH_BUCKET(x,min,max,num_buckets) 只能在SQL语句中使用。使用WIDTH_BUCKET可以根据输入参数创建等长的段。范围MIN到MAX被分为num_buckets节,每节有相同的大小。返回X所在的那一节。如果X小于MIN,将返回0,如果X大于或等于MAX,将返回n
10、um_buckets+1.MIN和MAX都不能为NULL,num_buckets必须是一个正整数。如果X是NULL,则返回NULL。时间类型函数:(date)内部存储格式:世纪、年、月、日、小时、分钟、秒默认格式是:DD-MON-RR。SYSDATE 返回当前的系统时间。SELECT SYSDATE FROM DUAL;对日期的数学运算SELECT (SYSDATE-HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;数字列ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值。X可以是任意整数。如果结果的月份中所包含的日分量少于DATE的月份
11、的日分量,则返回结果月份的最后一天。如果不小于,则结果与DATE的日分量相同。时间分量也相同。CURRENT_DATE 以DATE类型返回会话时区当前的日期。这个函数同SYSDATE相似,除了SYSDATE不管当 会话时区。CURRENT_TIMESTAMP(precision)以TIMESTAMP WITH TIMEZONE 类型返回会话时区当前的日期。如果指定precision,它指返回秒数的精度,缺省为6。DBTIMEZONE返回数据库的时区。 LAST_DAY(日期) 指定日期所在月份的最后一天的日期,这个函数可用来确定本月还有多少天。LOCALTIMESTAMP(precision)
12、以TIMESTAMP类型返回会话时区的当前日期。如果指定precision,它指返回秒数的精度,缺省为6 。MONTHS_BETWEEN(离当前比较近的日期date1,以前的日期) 两个日期之间相差的月数(以日作为最小单位来计算的)。返回是相差的月数。如果date1和date2的日分量相同,或者这两个日期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一个月31天计算。NEW_TIME(d,zone1,zone2)函数,当时区zone1中的日期和时间是D的时候,返回时区zone2中的日期和时间。 返回类型为DATE。zone1和zone2是字符字符串,另外的时区可
13、在ORACLE9I中 通过查询V$TIMEZONE_NAMES得到。NEXT_DAY (日期,星期几) 指定日期后将要遇到的后七天的某一天的日期。ROUND(日期,MONTH/YEAR) 四舍五入得到新的日期。 保留位置是月和年SESSIONTIMEZONE返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。如果指定格式,则与 ALTER SESSION 语句中的格式相同。SYS_EXTRACT_UTC(datetime)从提供的DATETIME中以UTC(Coordinated Universal Time)返回时间。DATETIME必须包含一个时区。SYSTIMESTAMP以
14、TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式SQL语句中使用的时候,返回本地数据库的日期和时间。TRUNC(日期,MONTH/YEAR) 截取 TZ_OFFSET(timezone)以字符字符串返回提供的timezone和UTC之间的偏移量。timezone可以被指定为时区名或+/-HH:HI格式表示的偏移量。也可使用SESSIONTIMEZONE和DBTIMEZONE函数,返回格式为。字符字符串时区AST大西洋标准时ADT大西洋夏令时BST白令标准时BDT白令夏令时CST中央标准时CDT中央夏令时EST东部标准时EDT东部夏令时GMT格林威治平均时HST阿
15、拉斯加夏威夷标准时HDT阿拉斯加夏威夷夏令时MSTMountain标准时MDTMountain夏令时NST纽芬兰标准时PST太平洋标准时PDT太平洋夏令时YSTYuKon标准时YDTYuKon夏令时日期和日期时间算术运算返回类型结果d1-d2NUMBER返回D1和D2之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。dt1-dt2INTERVAL返回DT1和DT2之间的时间间隔。i1-i2返回i1和i2之间的差距。d1+d2N/A非法仅能进行两个日期之间的相减。dt1+dt2i1+i2返回i1和i2的和。d1+nDATE在D1上加上N天作为DATE类型返回。N可以是实数,它包含一天
16、的几分之几。d1-n从D1上减去N天作为DATE类型返回。dt1+i1DATETIME返回DT1和I1的和。dt1-i1返回DT1和I1之间的差距。i1*n返回I1的N次方。i1/n返回I1除以N的值。表中注:D1和D2指日期值;DT1和DT2指日期时间值;I1和I2指时间间隔值;N指数字值。显示转换:(conversion)TO_NUMBER(char,format_model) 字符转换到数字类型TO_DATE(char, 字符转换到日期类型格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。TO_CHAR(date,nlsparams)第二个参数可以省略,不指
17、定格式,按系统默认格式输出。区分大小写。使用FM(在格式控制符前添加)符号可以去掉空格或是首位的零。如果指定了NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为:NLS_DATA_LANGUAGE=language,language指需要的语言。例:select to_char(sysdate,FMyyyy-mm-dd格式控制符的类型:YYYY 四位的年YEAR 年的拼写MM 2位数字的月MONTH 月的全名MON 月名的前三个字符DY 星期名的前三个字符DAY 星期名的全称DD 2位的天时间格式控制符:HH24:SS AMHH12:SS PM通过“”来实现加入特殊字符的格
18、式控制符。SELECT TO_CHAR(SYSDATE,FMyyyy年mm月dd日DDSPTHDD是格式控制符。TH是序数词,将日期转换成英文的序数词拼写。SP是基数词,将日期转换成英文的基数词拼写。TO_CHAR(NUM,nlsparams)转换数字 将NUMBER类型参数NUM转换成VARCHAR2类型。如果指定FORMAT,它会控制整个转换。如果没有指定FORMAT,那么结果字符串中将包含和NUM中有效位的个数相同的字符。NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:NLS_NUMERIC_CHARS= dg NLS_CURRENCY= stringd和g分别代表小数
19、点和千分符。STRING代表货币符号。数字格式控制符:9代表一位数字(替换符。有,数字显示;没有。不什么都显示。)0代表一位数字(有数字,显示;没有,强制显示0。$美圆符号L本地货币.小数点,千分符B当整数部分为0时,将整数部分填充为空格。B999MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MIS返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999SPR 使用尖括号返回负数。正数将有前导或后继空格。999PRD在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9G在指定位置返回千分符,G可以在FORMAT_model中出现多次
20、。9G999G9C在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99在指定位置上返回本地货币符号。 L99V返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99EEEE使用科学记数法返回该数值。9.99EEEERM使用大写的罗马数字表示返回该数值。 RMrm使用小写的罗马数字表示返回该数值。 rmFM返回不含前导和后继空格的数值。 FM99.09格式控制符位数一定要大于或等于NUMBER的位数,不能小于。用RR解决跨世纪问题: 小于50的认为是1950-2050 大于50的认为是1951-1999 数字和日期是不能相互转换的。ASCIISTR(st
21、ring)返回只包含有效的SQL字符和斜线的字符串。string中的任何无效的字符将被转换为一个相当的数字,在之前加上斜线。BIN_TO_NUM(num,num.)将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的NUMS,每一个都必须是0或1。例如BIN_TO_NUM(1,0,1,1)将返回11,因为11的二进制表示是1011。当使用分组集合和GROUP BY 子句时该函数很有用。CHARTOROWID(x)函数,将字符串转换成一个ROWID类型的值,注意格式必须采用ROWID数据类型格式,即“数据块号:行序号:数据文件号”。COMPOSE(string)以相同字符集中完全规格化Unic
22、ode形式返回string.string可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB类型。DECOMPOSE(string) 返回一个Unicode字符串。它是string的规范分解。string可以是CHAR、VARCHAR2、 NCHAR、NVARCHAR2、CLOB或NCLOB类型。FROM_TZ(timestamp,timezone) 返回一个TIMESTAMP WITH TIMEZONE 类型值。它将TIMESTAMP(没有时区信息)和提供的TIMEZONE组合在一起。HEXTORAW(string)将由STRING表示的二进制数值转换为一个
23、RAW数值。STRING应该包含十六进制值。STRING中的每两个字符表示结果RAW中的一个字节。HEXTORAW和RAWTOHEX互为反函数。NUMTODSINTERVAL(x,unit) 将X转换为INTERVAL DAY TO SECOND 值,X应该是一个数字。UNIT是一个字符字符串(可以是CHAR、VARCHAR2、NCHAR或NVARCHAR2),且是DAY、HOURMINUTESECOND之一。unit是不区分大小写的,返回值的缺省精度为9。NUMTOYMINTERVAL(x,unit)将X转换成INTERVAL YEAR TO MONTH 值,X应该是一个数字。YEAR或MONTHREFTOHEX(refvalu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1