mysql系统函数
#字符串函数
Name | Description |
---|---|
char_length(str) | 字符长度 |
length(str) | 字节长度 |
concat(s1,s2…) | 返回连接参数产生的字符串,任意一个为NULL则返回值为NULL |
concat_ws(x,s1,s2…) | 返回多个字符串拼接之后的字符串,每个字符串之间有一个x。 |
group_concat(field_name) | 从s1指定位置X开始,用s2取代长度len的字符串 |
insert(s1,x,len,s2) | 字符长度 |
lower(str)) | 将str中的字母全部转换成小写 |
upper(str) | 将str中的字母全部转换成大写 |
left(str,len) | 返回字符串从左边开始的Len长度字符 |
right(str,len) | 返回字符串从右边开始的Len长度字符 |
mid(str,x,len) | 从字符串s中返回一个第x个字符开始、长度为len的字符串 |
lpad(s1,len,s2) | 其左边由字符串s2填补到len字符长度 |
rpad(s1,len,s2) | 其右边由字符串s2填补到len字符长度 |
ltrim(str) | 左去空格 |
rtrim(str) | 右去空格 |
trim(str) | 两边去空格 |
repeat(s,n) | s重复n次 |
space(n) | 返回n个空格的字符串 |
replace(s,s1,s2) | 返回一个字符串,用字符串s2替代字符串s中所有的字符串s1 |
strcmp(s1,s2) | 比较大小,返回-1,0,1 |
reverse(s) | 反转字符串s |
elt(n,s1,s2…) | 返回第n个字符串,位置不存在返回NULL |
field(s,s1,s2…) | 返回第一个与字符串s匹配的字符串的位置,没有返回0 |
locate(str1,str) | 返回str1在str中的开始位置 |
find_in_set(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置,没有返回0 |
make_set(x,s1,s2…) | 按x的二进制数从s1,s2…,sn中选取字符串 |
#数学函数
Name | Description |
---|---|
abs(number x) | 返回X的绝对值 |
floor(decimal x) | 返回不大于X的最大整数 |
ceil(decimal x) | 返回不小于X的最小整数 |
truncate(X,D) | 返回数值X保留到小数点后D位,截断时不进行四舍五入 |
round(X)) | 返回离X最近的整数,截断时要进行四舍五入 |
round(X,D) | 返回数值X保留到小数点后D位,截取时四舍五入 |
rand() | 0-1之间随机数 |
sign(X) | 返回X的符号,-1,0,1 |
pi() | 返回圆周率的值,默认的显示小数位数是7位 |
pow(x,y) | 返回x的y次乘方的值 |
sqrt(X) | 返回非负数的x的二次方根 |
exp(X) | 返回e的x乘方后的值 |
mod(N,M) | N除以M取余 |
log(X) | 返回x的自然对数,x相对于基数2的对数 |
radians(X) | 角度转弧度的值 |
degrees(X) | 弧度转角度的值 |
#日期函数
Name | Description |
---|---|
curdate() | 返回当前日期,格式:yyyy-MM-dd |
curtime() | 返回当前时间,格式:HH:mm:ss |
now() | 返回当前日期和时间 |
unix_timestamp() | 返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数 |
unix_timestamp(date) | 返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数 |
from_unixtime(date) | 和 unix_timestamp互为反函数,UNIX时间戳转换为普通格式的时间 |
year(date) | 返回日期中的年份值 |
month(date) | 返回日期中的月份值 |
day(date) | 返回日期中的天数值 |
hour(t) | 返回时间t中的小时值 |
minute(t) | 返回时间t中的分钟值 |
second() | 返回时间t中的秒钟值 |
week(date) | 计算日期d是本年的第几个星期 |
dayofweek(d) | 返回日期d是星期几,如:1表示星期日,2表示星期一 |
dayofmonth(d) | 计算日期d是本月的第几天 |
dayofyear(d) | 计算日期d是本年的第几天 |
quarter(d) | 返回日期d是第几季度 |
datediff(d1,d2) | 计算日期d1与d2之间相隔的天数 |
date_add(date,interval ‘±n [±m]’ type) | 计算起始日期d加上一个时间段后的日期 |
date_format(date,’%Y-%m-%d %H:%i:%s’) | 按照给定格式要求显示日期d |
date_add(date,interval concat('-',dayofweek(date))+2 day); 查询本周第一天
select concat_ws('-',year(now()),(quarter(now())-1)*3+1,'1'); 查询本季度第一天
#条件函数
Name | Description |
---|---|
if(expr,v1,v2) | 如果表达式expr成立,则执行v1;否则执行v2 |
ifnull(v1,v2) | 如果v1不为空,则显示v1的值;否则显示v2的值 |
case when expr1 then v1 [when expr2 then v2 …][else vn]end | case表示函数开始,end表示函数结束。如果表达式expr1成立,则返回v1的值;如果表达式expr2成立,则返回v2的值。依次类推,最后遇到else时,返回vn的值 |
case expr when e1 then v1 [when e2 then v2 …][else vn] end | case表示函数开始,end表示函数结束。如果表达式expr取值为e1,则返回v1的值;如果表达式expr取值为e2,则返回v2的值,依次类推,最后遇到else,则返回vn的值 |