1、常用的函数分为五大类:
字符函数、数字和日期函数、数字函数、转换函数、混合函数
2、字符函数
字符函数主要用于修改字符列。这些函数接受字符输入,返回字符或数字值。Oracle 提供的一些字符函数如下。
1. CONCAT (char1, char2)
返回连接“char2”的“char1”。
2. INITCAP(string)
将“string”的字符转成大写。 这个只能转换首字母为大写,慎用
3. LOWER (string)
将“string”转成小写。 这个是所有的字符都转换为小写,和上边的不一样
4. LPAD(char1,n [,char2])
返回“char1”,左起由“char2”中的字符补充到“n”个字符长。如果“char1”比“n”长,则函数返回“char1”的前“n”个字符。 示例
5. LTRIM(string,trim_set)
从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 示例
6. REPLACE(string, if, then)
用 0 或其他字符代替字符串中的字符。“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。 示例
7. RPAD(char1, n [,char2])
返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。如果 “char1”比“n” 长,则函数返回“char1”的前“n”个字符。 示例
8. RTRIM(string,trim_set)
从右侧删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 示例
9. SOUNDEX(char)
返回包含“char”的表意字符的字符串。它允许比较英语中拼写不同而发音类似的字。 示例
10. SUBSTR(string, start [,count])
返回“string”中截取的一部分。该命令截取“string”的一个子集,从“start”位置开始,持续“count”个字符。如果我们不指定“count”,则从“start”开始截取到“string”的尾部。 示例
11. TRANSLATE(string, if, then) 这个和replace不知道有什么区别,这个限制定点位置,replace替换全部
“if”中字符的位置,并检查“then”的相同位置,然后用该位置的字符替换 “string”中的字符。 示例
12. UPPER(string) 这个是全部变大写
返回大写的“string”。 示例
13. ASCII(string) 写再多也没用,只返回第一个
该命令是“American Standard Code for Information Interchange”的缩写。它是使用数字表示可打印字符的基本规则。该函数返回 “string”中第一个(最左边)字符的 ASCII 值。 示例
14. INSTR (string, set[, start[, occurrence] ] )
该命令“string”中从“start”位置开始查找字符集合的位置,再查找“set”出现的第一次、第二次等等的“occurrence”(次数)。“start”的值也可以是负数,代表从字符串结尾开始向反方向搜索。该函数也用于数字和日期数据类型。 示例
15. LENGTH(string)
返回“string”的长度值。 示例
2、数据和日期函数
Oracle 在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。 Oracle 所提供的一些日期函数如下所示。
1. SYSDATE
返回当前的日期和时间。 示例
2. ADD_MONTHS(d, no_of_month)
返回带有“no_of_month”的日期“d”。参数“no_of_month”可为任何整数。 示例
3. LAST_DAY(month_day)
返回变量“month_day”中所指定月份的最后一天的日期。 示例
4. MONTHS_BETWEEN(d1, d2)
返回日期 d1 和 d2 之间的月份数。如果 d1 晚于 d2,结果为正,否则返回负数。 示例
5. NEXT_DAY(d, day_of_week)
返回由“day_of_week”命名的,在变量“d”指定的日期之后的第一个工作日的日期。参数“day_of_week”必须为该星期中的某一天。 示例
3、数字函数
数字函数接受数字输入,返回数字值作为输出。数字函数返回的值可精确至 38 个小数位数。Oracle 所提供的一些数字函数如下所示。
1. ABS(n)
返回 n 的绝对值。 示例
2. (n)
返回大于等于 n 的最小整数。 示例
3. FLOOR(n)
返回小于等于 n 的最大整数。 示例
4. MOD(m,n)
返回 m 被 n 除后的余数。然而如果 n 为 0,则返回 m。 示例
5. POWER(m, n)
返回 m 的 nth 乘方。底数 m 和指数 n 可为任何数,但如果 m 为负数,n 必须为整数。 示例
6. ROUND(value, precision)
Round 将“value”中给定的数值舍入到“precision”中指定的小数位。 示例
7. SQRT(n)
返回 n 的平方根。n 值不能为负。 示例
8. TRUNC(n[,m])
返回截尾取整到 m 小数位的 n。 示例
4、转换函数
除了字符、数值和日期函数外,Oracle 还提供转换函数。转换函数将值从一种数据类型转换为另一种数据类型。Oracle 所提供的一些转换函数如下所示。
1.TO_CHAR(d [, fmt ])
将 DATE 数据类型的“d”转换为 VARCHAR2 数据类型的值,格式由日期格式“fmt”所指定。如果省略了“fmt”,则将 d 按照默认的日期格式转化为 VARCHAR2 值。 示例
2.TO_CHAR(n [, fmt ])
使用可选的数字格式“fmt”将 NUMBER 数据类型的“n”转换成为 VARCHAR2 数据类型的值。如果省略了“fmt”,则将 n 转换为长度刚好为其有效数字位数的 VARCHAR2 值。 示例
3.TO_NUMBER(char [,fmt ])
将包含一个数字的 CHAR 或 VARCHAR2 数据类型的“char”转换为格式“fmt”所指定的格式,即 NUMBER 数据类型。 示例
4.TO_DATA(char,fmt)
将CHAR或VARCHAR2值转换为一指定格式的日期类型的值。 示例
5、混合函数
1.GREATEST(expr [,expr] ...)
返回值列表的最大值。对于字符数据比较的是 ASCII 值。 示例
2.LEAST(expr [,expr] ...)
返回值列表的最小值。对于字符数据比较的是 ASCII 值。 示例
3.NVL(value substitute)
如果值是 null 则替换值。 示例
4.USER
以 VARCHAR2 数据类型返回当前 Oracle 用户。 示例
5.VSIZE(expr)
返回 expr 的内部表达的字节数,如果 expr 是 null,则该函数返回 null。 示例
6、
AD 或 A.D.
带有或不带有句号的 AD 标记
BC 或 B.C.
带有或不带有句号的 BC 标记
D
一周中的天 (1-7)
DAY
天的名称 (Sunday - Saturday)
DD
一月中的天 (1 - 31)
DDD
一年中的天 (1 - 366)
DY
天的缩写 (Sun - Sat)
HH
一天中的小时 (1 - 12)
HH24
一天中的小时 (0 - 23)
MI
分钟 (0-59)
MM
月 (01-12)
MON
月名称的缩写
MONTH
月的名称
SS
秒 (0-59)
YYYY
4 个数字表示的年