DQL查询语法中还支持使用以下函数:
字符串函数
|
标准函数 |
含义 |
|
LOWER(str) |
转成小写。 |
|
UPPER(str) |
转成大写。 |
|
ISDIGIT(str) |
判定str是否全由数字构成。 |
|
ISALPHA(str) |
判定str是否全由字母构成。 |
|
LTRIM(str) |
删除前导空白。 |
|
RTRIM(str) |
删除后缀空白。 |
|
TRIM(str) |
删除两端空白。 |
|
SUBSTR(str,start,len) |
子串。 |
|
LEN(str) |
串长。 |
|
INDEXOF(sub,str[,start]) |
子串的位置。 |
|
IPOS(str1,str2[,n]) |
在字符串str1中,从左边第n位开始查找子串str2,返回str2的位置。n缺省为1。大小写不敏感。 |
|
GETSUBS(str1,str2[,n]) |
在字符串str1中,从左边开始查找第n个字符串str2,找到后返回str2位置后面的串。n缺省为1。 |
|
IGETSUBS (str1,str2[,n]) |
在字符串str1中,从左边开始查找第n个字符串str2,找到后返回str2位置后面的串。n缺省为1。大小写不敏感。 |
|
LEFT(str,len) |
str中最左边len个字符。 |
|
RIGHT(str,len) |
str中最右边len个字符。 |
|
CONCAT(str1,str2) |
连接2个字符串。 |
|
CONCAT(str1,str2,str3…) |
连接多个字符串。 |
|
CONCAT_WS(d,str1,str2,…) |
用分隔符d连接多个字符串。 |
|
REPLACE(str,sub,rplc) |
将str中的sub替换成rplc。 |
日期时间函数
|
标准函数 |
含义 |
|
YEAR(d) |
取年。 |
|
MONTH(d) |
取月。 |
|
DAY(d) |
取天。 |
|
HOUR(d) |
取小时。 |
|
MINUTE(d) |
取分钟。 |
|
SECOND(d) |
取秒。 |
|
QUARTER(d) |
取季度。 |
|
TODAY() |
今天。 |
|
NOW() |
当前时间。 |
|
ADDYEARS(d, n) |
增加年数。 |
|
ADDMONTHS(d, n) |
增加月数。 |
|
ADDDAYS(d, n) |
增加天数。 |
|
ADDHOURS(d, n) |
增加小时数。 |
|
ADDMINUTES(d, n) |
增加分钟数。 |
|
ADDSECONDS(d, n) |
增加秒数。 |
|
DAYOFYEAR(d) |
当年中第几天。 |
|
DAYOFWEEK(d) |
星期几,1表示星期日。 |
|
WEEKOFYEAR(d) |
当年中第几星期。 |
|
YEARSDIFF(d1,d2) |
计算两个日期相差年数。 |
|
MONTHSDIFF(d1,d2) |
计算两个日期相差月数。 |
|
DAYSDIFF(d1,d2) |
计算两个日期相差天数。 |
|
HOURSDIFF(d1,d2) |
计算两个日期相差小时数。 |
|
MINUTESDIFF(d1,d2) |
计算两个日期相差分钟数。 |
|
SECONDSDIFF(d1,d2) |
计算两个日期相差秒数。 |
|
TRUNCHOUR(d) |
截断到小时。 |
|
TRUNCMINUTE(d) |
截断到分钟。 |
|
TRUNCSECOND(d) |
截断到秒。 |
|
MONTHSTART(d) |
当月首日。 |
|
MONTHEND(d) |
当月末日。 |
|
WEEKSTART(d) |
当周首日,周一为每周第一天。 |
|
WEEKEND(d) |
当周末日,周一为每周第一天。 |
|
QUARTERSTART(d) |
当季首日。 |
|
QUARTEREND(d) |
当季末日。 |
|
YEARSTART(d) |
当年首日。 |
|
YEAREND(d) |
当年末日。 |
|
MONTHDAYS(d) |
当月日数。 |
|
QUARTERDAYS(d) |
当季日数。 |
|
YEARDAYS(d) |
当年日数。 |
|
ITX(s) |
根据时间分量生成时间区间常数,s表示秒。 |
|
ITX (null,d) |
根据时间分量生成时间区间常数,d表示日,第一个参数值固定为null。 |
|
ITX(null,d,m) |
根据时间分量生成时间区间常数,d表示日,m表示月,第一个参数值固定为null。 |
|
ADDX(t,k) |
日期加法。 k可以ITX()返回的时间区间常数。 t是日期/日期时间且 k是数值时,k 表示日。 t / k是其它数据类型则正常做加法。 |
|
SUBX(t1,t2) |
日期减法。 t1是日期/日期时间且 t2是数值时,t2 表示日。 t1 / t2是其它数据类型则正常做减法。 |
|
CMPX(it1,it2) |
日期比较。 it1 / it2 可以是日期/时间/日期时间/时间区间常数/数值。 |
数值函数
|
标准函数 |
含义 |
|
ABS(x) |
求绝对值。 |
|
ACOS(x) |
求反余弦。 |
|
ASIN(x) |
求反正弦。 |
|
ATAN(x) |
求反正切。 |
|
ATAN2(x,y) |
求反正切。 |
|
CEIL(x) |
求大于等于x的最小整数。 |
|
CEIL(x,n) |
根据精度n对x向上取整;n缺省为0,n>0 保留 n 位小数,n=0 取整到个位,n<0 按十位、百位、千位等整数位向上取整。 |
|
COS(x) |
求余弦。 |
|
EXP(x) |
求e的x次幂。 |
|
FLOOR(x) |
求小于等于x的最大整数。 |
|
FLOOR(x,n) |
根据精度n对x向下取整;n缺省为0,n>0 保留 n 位小数,n=0 取整到个位,n<0 按十位、百位、千位等整数位向下取整。 |
|
LN(x) |
求自然对数。 |
|
LOG10(x) |
求以10为底的对数。 |
|
MOD(x,m) |
x模m。 |
|
POWER(x,y) |
x的y次幂。 |
|
ROUND(x,n) |
四舍五入。 |
|
SIGN(x) |
求符号。 |
|
SIN(x) |
求正弦。 |
|
SQRT(x) |
平方根。 |
|
TAN(x) |
正切。 |
|
TRUNC(x,n) |
截断。 |
|
RAND(seed) |
随机数。 |
|
PI() |
计算圆周率。 |
转换函数
|
标准函数 |
含义 |
|
ASCII(str) |
串中最左边字符的ASCII码。 |
|
CHR(n) |
ascii值n转换成一个字符。 |
|
INT(x) |
字符串或数值转成整数。 |
|
DECIMAL(x,len,scale) |
字符串或数值转成数值。 |
|
TIMESTAMP(d[,str]) |
将d根据格式串str转换成日期时间类型。str缺省为yyyy-MM-dd HH:mm:ss。 |
|
NUMTOCHAR(d) |
数值转成字符串。 |
|
DATETOCHAR(date) |
将日期转化成yyyy-MM-dd HH:mm:ss格式串。 |
|
DATETIME(date,time) |
将日期date和时间time拼成日期时间。 |
|
DATE(sd[,fd]) |
将sd根据格式串fd转换成日期类型。fd缺省为yyyy-MM-dd 。 |
|
DATE(y,m,d) |
将整数y,m,d转换成日期型数据,失败则返回null。 |
|
TIME(sdt[,fd]) |
将sdt根据格式串fd转换成时间类型。fd缺省为HH:mm:ss。 |
|
TIME(h,m,s) |
将整数h,m,s转换成时间型数据。 |
|
CAST(x,y) |
将x转换为数据类型y。 |
|
CHN(n) |
将数字n转为中文数字写法。 |
|
STRING(exp[,format][,loc]) |
将 exp 转为字符串类型,可通过 format 格式化输出、loc 指定语言地区。参数format 、loc 可省略。 |
其它
|
标准函数 |
含义 |
|
NULLIF(x1,x2) |
若x1=x2返回null,否则返回x1。 |
|
COALESCE(x1,…) |
返回第一个非null的参数。 |
|
CASE(when1,then1,…[,else]) |
when=true则返回相应的then,否则返回else。 |