达梦系统函数
表 B-1 数值函数
|
序 号 |
函
数 名 |
功能简要说明 |
|
1 |
ABS(n) |
求数值
n 的绝对值 |
|
2 |
ACOS(n) |
求数值
n 的反余弦值 |
|
3 |
ASIN(n) |
求数值
n 的反正弦值 |
|
4 |
ATAN(n) |
求数值
n 的反正切值 |
|
5 |
ATAN2(n1,n2) |
求数值
n1/n2
的反正切值 |
|
6 |
CEIL(n)/CEILING(n) |
求大于或等于数值
n 的最小整数 |
|
7 |
COS(n) |
求数值
n 的余弦值 |
|
8 |
COSH(n) |
求数值
n 的双曲余弦值 |
|
9 |
COT(n) |
求数值
n 的余切值 |
|
10 |
DEGREES(n) |
求弧度
n 对应的角度值 |
|
11 |
EXP(n) |
求数值
n 的自然指数 |
|
12 |
FLOOR(n) |
求小于或等于数值
n 的最大整数 |
|
13 |
GREATEST(n1,n2,n3) |
求
n1、n2
和 n3 三个数中最大的一个 |
|
14 |
GREAT(n1,n2) |
求
n1、n2
两个数中最大的一个 |
|
15 |
LEAST(n1,n2,n3) |
求
n1、n2
和 n3 三个数中最小的一个 |
|
16 |
LN(n) |
求数值
n 的自然对数 |
|
17 |
LOG(n1[,n2]) |
求数值
n2 以 n1
为底数的对数;若 n2
未设置,则返回数值 n1
的自然对数 |
|
18 |
LOG10(n) |
求数值
n 以
10 为底的对数 |
|
19 |
MOD(m,n) |
求数值
m 被数值
n 整除的余数 |
|
20 |
PI(
) |
得到常数π |
|
21 |
POWER(n1,n2) |
求数值
n2 以 n1
为基数的指数 |
|
22 |
RADIANS(n) |
求角度
n 对应的弧度值 |
|
序 号 |
函
数 名 |
功能简要说明 |
|
23 |
RAND([n]) |
求一个
0~1 的随机浮点数 |
|
24 |
ROUND(n[,m]) |
求四舍五入值函数;将数值
n 四舍五入到小数点后
m 位,m 默认取 0 |
|
25 |
SIGN(n) |
判断数值的数学符号 |
|
26 |
SIN(n) |
求数值
n 的正弦值 |
|
27 |
SINH(n) |
求数值
n 的双曲正弦值 |
|
28 |
SQRT(n) |
求数值
n 的平方根 |
|
29 |
TAN(n) |
求数值
n 的正切值 |
|
30 |
TANH(n) |
求数值
n 的双曲正切值 |
|
31 |
TO_CHAR(n[,fmt[,'nls']]) |
将数值类型的数据转换为VARCHAR 类型输出 |
|
32 |
TO_NUMBER(char[,fmt]) |
将
CHAR、VARCHAR、VARCHAR2 等类型的字符串转换为fmt 类型的数 值,fmt 取值及相应的转换格式如表 B-7 所示 |
|
33 |
TRUNC(n[,m])/ TRUNCATE(n[,m]) |
截取数值函数;将数值 n 的小数点后 m 位以后的全部截去。当 m 为负数时, 表示将数值
n 的小数点前的
m 位截去,m 默认值为 0 |
表 B-2 字符串函数
|
序 号 |
函
数 名 |
功能简要说明 |
|
1 |
ASCII(char) |
返回字符对应的整数 |
|
2 |
BIT_LENGTH(char) |
求字符串的位长度 |
|
3 |
BLOB_EQUAL(n1,
n2) |
返回两个 BOB、IMAGE 或 LONGVARBINARY 类型的值 n1 和 n2 的 比较结果,相同返回
1,否则返回 0 |
|
4 |
CHAR(n)/CHR(n) |
返回整数
n 对应的字符 |
|
5 |
CHAR_LENGTH(char)/ CHARA_CTER_LENGTH(char) |
求字符串的串长度 |
|
6 |
CONCAT(char1,
char2, char3, …) |
顺序连接多个字符串成为一个字符串 |
|
7 |
DIFFERENCE(char1, char2) |
比较两个字符串的SOUNDEX 值差异,返回两个 SOUNDEX 值在同 一个位置出现相同字符的个数 |
|
8 |
EMPTY_CLOB(
) |
初始化
CLOB 字段 |
|
9 |
EMPTY_BLOB(
) |
初始化
BLOB 字段 |
|
10 |
GREATEST(char1,char2, char3) |
求
char1、char2 和 char3 中最大的字符串 |
|
11 |
GREAT(char1, char2) |
求
char1 和 char2 中最大的字符串 |
|
12 |
INITCAP(char) |
将字符串中单词的首字符转换成大写字符 |
|
13 |
INS(char1,
begin, n, char2) |
删除在字符串 char1 中以 begin
参数所指位置开始的 n 个字符,再把 char2
插入到 char1 字符串的begin 所指位置 |
|
14 |
INSERT(char1,
n1, n2, char2)/ INSSTR(char1,
n1, n2, char2) |
将字符串 char1 从第
n1 个字符的位置开始删除 n2 个字符,并将 char2 插入到
char1 中第 n1 个字符的位置 |
|
15 |
INSTR(char1,
char2[,n,[m]]) |
从输入字符串 char1 的第 n 个字符开始查找字符串 char2 第 m 次出现的位置,以字符计算。当 n 为负数时,从字符串 char1 的最右边开始数 起。n 和 m 的默认值均为 1 |
(续表)
|
序 号 |
函
数 名 |
功能简要说明 |
|
16 |
INSTRB(char1,
char2[,n,[m]]) |
从字符串char1 的第n 字节开始查找字符串char2 第m 次出现的位置, 以字节计算。n 和 m 的默认值均为 1。当 n 为负数时,从字符串 char1 的最右边开始数起 |
|
17 |
LCASE(char)/LOWER(char) |
将大写的字符串转换为小写的字符串 |
|
18 |
LEFT(char,
n)/LEFTSTR(char, n) |
返回字符串最左边的
n 个字符组成的字符串 |
|
19 |
LEN(char) |
返回给定字符串表达式的字符(而不是字节)个数(汉字为
1 个字符), 其中不包含尾随空格 |
|
20 |
LENGTH(char) |
返回给定字符串
char 表达式的字符(而不是字节)个数(汉字为 1 个字符),其中包含尾随空格 |
|
21 |
LENGTHB(char)/ OCTET_LENGTH(char) |
返回输入字符串
char 的字节数 |
|
22 |
COPYB(DEST_LOB,
SRC_LOB, LEN[,DOFFSET[,SOFFSET]]) |
复制指定长度的源
BLOB 数据插入目标 BLOB |
|
23 |
LOCATE(char1, char2[,n]) |
返回字符串
char1 在字符串 char2 中首次出现的位置 |
|
24 |
LPAD(char1, n,
char2) |
在输入字符串
char1 的左边填充上字符串 char2 指定的字符,将其拉 伸至
n 个字符长 |
|
25 |
LTRIM(char1, char2) |
从输入字符串
char1 中删除所有的前导字符,这些前导字符由字符串 char2 定义 |
|
26 |
NLSSORT(str1[,nls_sort_str2]) |
返回对汉字
str1 按照 str2 进行排序的编码。当 str2 未设置时,返回 str1 的十六进制字符串,若str2 取schinese_pinyin_m、schinese_stroke_ m、schinese_radical_m 时,分别表示对汉字按拼音、笔画、部首排序 |
|
27 |
OVERLAY(char1
PLACING char2 FROM
int [FOR int]) |
字符串覆盖函数,用字符串 char2
覆盖字符串 char1
中指定的子字符 串,返回修改后的字符串 char1 |
|
28 |
POSITION(char1,char2)/ POSITION
(char1, /IN char2) |
求字符串
char1 在字符串 char2 中第一次出现的位置 |
|
29 |
REPEAT(char,
n)/ REPEATSTR(char,
n) |
返回将字符串
char 重复 n 次形成的字符串 |
|
30 |
REPLACE(char, search_string
[,replacement_string]) |
将输入字符串 char 中所有出现的 search_string 都替换成 replacement_ string 字符串。当 replacement_string 未设置时,表示删除字符串 char 中的search_string |
|
31 |
REPLICATE(char,times) |
将字符串
char 复制 times 次 |
|
32 |
REVERSE(char) |
将字符串反序 |
|
33 |
RIGHT(char,
n)/ RIGHTSTR(char,
n) |
返回字符串最右边
n 个字符组成的字符串 |
|
34 |
RPAD(char1, n, char2) |
类似
LPAD 函数,只是向右拉伸该字符串使之达到 n 个字符串长 |
|
35 |
RTRIM(char1, char2) |
从输入字符串
char1 的右端开始删除字符串 char2 中的字符 |
|
36 |
REGEXP |
根据符合POSIX 标准的正则表达式进行字符串匹配 |
|
37 |
SOUNDEX(char) |
返回一个表示字符串发音的字符串 |
|
38 |
SPACE(n) |
返回一个包含
n 个空格的字符串 |
|
39 |
STRPOSDEC(char) |
将字符串
char 中最后一个字符的值减 1 |
|
40 |
STRPOSDEC(char, pos) |
将字符串
char 中指定位置 pos 上的字符值减 1 |
|
41 |
STRPOSINC(char) |
将字符串
char 中最后一个字符的值加 1 |
(续表)
|
序 号 |
函
数 名 |
功能简要说明 |
|
42 |
STRPOSINC(char,pos) |
将字符串
char 中指定位置 pos 上的字符值加 1 |
|
43 |
STUFF(char1,
begin, n, char2) |
删除在字符串 char1 中以 begin
参数所指位置开始的 n 个字符,再将 char2
插入字符串 char1
的begin
所指位置 |
|
44 |
SUBSTR(char,
m, n)/ SUBSTRING(char FROM m [FOR n]) |
返回字符串
char 中从位置 m 开始的 n 个字符 |
|
45 |
SUBSTRB(char, n, m) |
SUBSTR 函数等价的单字节形式 |
|
46 |
TO_CHAR(DATE[,fmt]) |
将日期类型数据转换为一个在日期语法fmt 中指定语法的VARCHAR 类型字符串 |
|
47 |
TRANSLATE(char, from, to) |
将所有出现在搜索字符集中的字符转换成字符集中的相应字符 |
|
48 |
TRIM([LEADING|TRAILING| BOTH][exp][char1] FROM char2]) |
删去字符串
char2 中由字符串 char1 指定的字符 |
|
49 |
TEXT_EQUAL(n1,
n2) |
返回 n1 和 n2 的比较结果。如果完全相同,返等 1;否则,返回 0。n1 和
n2 的类型为 CLOB、TEXT 或 LONGVARCHAR |
|
50 |
TO_SINGLE_BYTE(char) |
将多字节形式的字符(串)转换为对应的单字节形式 |
|
51 |
TO_MULTI_BYTE(char) |
将单字节形式的字符(串)转换为对应的多字节形式 |
|
52 |
UCASE(char)/UPPER(char) |
将小写的字符串转换为大写的字符串 |
表 B-3 日期时间函数
|
序 号 |
函 数 名 |
功能简要说明 |
|
1 |
ADD_DAYS(date,n) |
返回日期加上
n 天后的新日期 |
|
2 |
ADD_MONTHS(date,n) |
在输入日期上加上指定的几个月返回一个新日期 |
|
3 |
ADD_WEEKS(date,n) |
返回日期加上
n 个星期后的新日期 |
|
4 |
CURDATE( ) |
返回系统当前日期 |
|
5 |
CURTIME( ) |
返回系统当前时间 |
|
6 |
CURRENT_DATE( ) |
返回系统当前日期 |
|
7 |
CURRENT_TIME(n) |
返回系统当前时间 |
|
8 |
CURRENT_TIMESTAMP(n) |
返回系统当前带会话时区信息的时间戳 |
|
9 |
DATEADD(datepart,n,date) |
向指定的日期加上一段时间 |
|
10 |
DATEDIFF(datepart,date1,date2) |
返回跨两个指定日期的日期和时间边界数 |
|
11 |
DATEPART(datepart,date) |
返回代表日期的指定部分的整数 |
|
12 |
DAYNAME(date) |
返回日期的星期名称 |
|
13 |
DAYOFMONTH(date) |
返回日期为所在月份中的第几天 |
|
14 |
DAYOFWEEK(date) |
返回日期为所在星期中的第几天 |
|
15 |
DAYOFYEAR(date) |
返回日期为所在年中的第几天 |
|
16 |
DAYS_BETWEEN(date1,date2) |
返回两个日期之间的天数 |
|
17 |
EXTRACT(时间字段
FROM date) |
抽取日期时间或时间间隔类型中某个字段的值 |
|
18 |
GETDATE( ) |
返回系统当前时间戳 |
|
19 |
GREATEST(n1,n2,n3) |
求
n1、n2
和 n3 中的最大日期 |
|
20 |
GREAT(n1,n2) |
求
n1 和 n2
中的最大日期 |
|
21 |
HOUR(time) |
返回时间中的小时分量 |
|
22 |
LAST_DAY(date) |
返回输入日期所在月份最后一天的日期 |
(续表)
|
序 号 |
函 数 名 |
功能简要说明 |
|
23 |
LEAST(n1,n2,n3) |
求
n1、n2
和 n3 中的最小日期 |
|
24 |
LOCALTIME( ) |
返回系统当前时间 |
|
25 |
LOCALTIMESTAMP( ) |
返回系统当前时间戳 |
|
26 |
MINUTE(time) |
返回时间中的分钟分量 |
|
27 |
MONTH(date) |
返回日期中的月份分量 |
|
28 |
MONTHNAME(date) |
返回日期中月份分量的名称 |
|
29 |
MONTHS_BETWEEN(date1, date2) |
返回两个日期之间的月份数 |
|
30 |
NEXT_DAY(date1, char2) |
返回输入日期指定若干天后的日期 |
|
31 |
NOW( ) |
返回系统当前时间戳 |
|
32 |
OVERLAPS |
返回两个时间段是否存在重叠 |
|
33 |
QUARTER(date) |
返回日期在所处年中的季节数 |
|
34 |
ROUND(date1, char2) |
将日期四舍五入到最接近格式元素指定的形式 |
|
35 |
SECOND(time) |
返回时间中的秒分量 |
|
36 |
SYSDATE( ) |
返回系统的当前日期 |
|
37 |
SYSTIMESTAMP( ) |
返回系统当前带数据库时区信息的时间戳 |
|
38 |
TIMESTAMPADD(interval, n, timestamp) |
返回时间timestamp 加上 n 个 interval 类型时间间隔的结果 |
|
39 |
TIMESTAMPDIFF(interval, timestamp1, timestamp2) |
返回一个表明 timestamp2 与 timestamp1
之间的 interval 类型 时间间隔的整数 |
|
40 |
TO_CHAR(DATE[,fmt]) |
将日期数据类型 DATE 转换为一个在日期语法 fmt 中指定语 法的VARCHAR 类型字符串 |
|
41 |
TO_DATE(char[,fmt]) |
字符串转换为日期数据类型 |
|
42 |
TRUNC(date[,format]) |
把日期截断到最接近格式元素指定的形式 |
|
43 |
WEEK(date) |
返回日期为所在年中的第几周 |
|
44 |
WEEKDAY(date) |
返回当前日期的星期值 |
|
45 |
WEEKS_BETWEEN(date1, date2) |
返回两个日期之间相差的周数 |
|
46 |
YEAR(date) |
返回日期的年分量 |
|
47 |
YEARS_BETWEEN(date1, date2) |
返回两个日期之间相差的年数 |
表 B-4 空值判断函数
|
序 号 |
函 数 名 |
功能简要说明 |
|
1 |
COALESCE(n1,n2,……,nx) |
返回第一个非空的值 |
|
2 |
IFNULL(n1,n2) |
当
n1 为非空时,返回 n1;若 n1
为空,则返回 n2 |
|
3 |
ISNULL(n1,n2) |
当
n1 为非空时,返回 n1;若 n1
为空,则返回 n2 |
|
4 |
NULLIF(n1,n2) |
如果
n1=n2,返回 NULL;否则,返回 n1 |
|
5 |
NVL(n1,n2) |
返回第一个非空的值 |
|
6 |
NULL_EQU(n1,n2) |
返回两个类型相同的值的比较 |
表 B-5 类型转换函数
|
序 号 |
函
数 名 |
功能简要说明 |
|
1 |
BINTOCHAR(exp) |
将
exp 转换为 CHAR 类型 |
|
2 |
CAST(value AS 类型说明) |
将value 转换为指定的类型 |
|
3 |
CONVERT(类型说明, value) |
将value 转换为指定的类型 |
|
4 |
HEXTORAW(exp) |
将
exp 转换为 BLOB 类型 |
|
5 |
RAWTOHEX(exp) |
将
exp 转换为VARCHAR 类型 |
表 B-6 杂类函数
|
序 号 |
函 数 名 |
功能简要说明 |
|
1 |
DECODE(exp,
search1, result1,……, searchn,
resultn[,default]) |
查表译码 |
|
2 |
ISDATE(exp) |
判断表达式是否为有效的日期 |
|
3 |
ISNUMERIC(exp) |
判断表达式是否为有效的数值 |
表 B-7 fmt 取值及相应转换格式
|
元 素 |
例 子 |
说 明 |
|
,(逗号) |
9,999 |
在指定位置处返回逗号 注意:(1)逗号不能开头; (2)逗号不能在小数点右边 |
|
.(小数点) |
99.99 |
在指定位置处返回小数点 |
|
$ |
$9999 |
美元符号开头 |
|
0 |
0999 |
以
0 开头,返回指定字符的数字 |
|
9990 |
以
0 结尾,返回指定字符的数字 |
|
|
9 |
9999 |
返回指定字符的数字,其中,正号以空格代替,负号以“−”代替,0 开头以空格代替 |
|
D |
99D99 |
返回小数点的指定位置,默认为“.”,格式串中最多能有 1 个D |
|
G |
9G999 |
返回指定位置处的组分隔符,可有多个G,但不能出现在小数点右边 |
|
S |
S9999 |
负值前面返回 1 个“−”号; 正值前面不返回任何值 |
|
9999S |
负值后面返回一个“−”号; 正值后面不返回任何值; |
|
|
|
S 只能在格式串首尾出现 |
|
|
X |
XXXX/ xxxx |
返回指定字符的十六进制值,如果不是整数,则四舍五入到整数,如果为负数,则返 回错误 |
|
C |
C9999 |
返回指定字符的数字 |
|
B |
B9999 |
返回指定字符的数字 |




