案例
# 数字函数# abs函数 取绝对值select abs(-100) ;# avg() 取平均值select avg(age) from t_student;# CEIL(x)/CEILING(x)select ceil(2.5) ;select ceil(avg(age) ) from t_student;select ceiling(3) ;select ceil(3) ;# floorselect floor(2.5) ;# exp e的3次方select exp(3) ;# GREATEST(expr1, expr2, expr3, …) 返回列表中的最大值select GREATEST(1,4,5,3,9,2) ;# LEAST(value1,value2,...) 返回列表中的最小值select LEAST(1,4,5,3,9,2) ;# LN 自然对数select ln(2) ;# LOG(x) select log(20) ;# POW(x,y) 返回x的y次方select POW(2,3) ;# RAND() 返回0~1的随机值select RAND() ;# ROUND(x) 返回离x最近的整数select round(5.12) ;# SIGN(x) 判断x的符号 大于0 等于0 小于0 1 0 -1select sign(99),sign(0),sign(-199);# SQRT(x) x的平方根select SQRT(9);# TRUNCATE(x,y)select TRUNCATE(3.15926,3),TRUNCATE(3.15926,2) ;
4.4.2 字符串函数函数 说明 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码 LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s) 返回字符串 s 的字符数 CONCAT(s1,s2…sn) 字符串 s1,s2 等多个字符串合并为一个字符串 FIND_IN_SET(s1,s2) 返回在字符串s2中与s1匹配的字符串的位置 FORMAT(x,n) 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入 INSERT(s1,x,len,s2) 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串 LOCATE(s1,s) 从字符串 s 中获取 s1 的开始位置 LCASE(s)/LOWER(s) 将字符串 s 的所有字母变成小写字母 UCASE(s)/UPPER(s) 将字符串 s 的所有字母变成大写字母 TRIM(s) 去掉字符串 s 开始和结尾处的空格 LTRIM(s) 去掉字符串 s 开始处的空格 RTRIM(s) 去掉字符串 s 结尾处的空格 SUBSTR(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串 SUBSTR/SUBSTRING(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串 POSITION(s1 IN s) 从字符串 s 中获取 s1 的开始位置 REPEAT(s,n) 将字符串 s 重复 n 次 REVERSE(s) 将字符串s的顺序反过来 STRCMP(s1,s2) 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1
# 字符串函数# ASCII 查看第一个字符的ASCII值select ascii('ABC'),ascii('BC');# length 返回字符串的长度 字符个数select length('abcd1234'),CHAR_LENGTH('abcd1234');# CONCAT(s1,s2…sn) 字符串拼接select id,stuname ,age,concat('【',id,'】',stuname) from t_student# FIND_IN_SET(s1,s2) 返回在字符串s2中与s1匹配的字符串的位置select FIND_IN_SET("c","a,b,c,d,e,f,g");select FIND_IN_SET('c','a,b,c,d,e,f,g');# FORMAT(x,n) 函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入select FORMAT(19999999999.5678,2);# INSERT(s1,x,len,s2) 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串select INSERT("www.baidu.com",5,5,"sinax") ;# LOCATE(s1,s) 从字符串 s 中获取 s1 的开始位置select LOCATE("a","bcdaefg");# LCASE(s)/LOWER(s) 转换为小写# UCASE(s)/UPPER(s) 转换为大写select lcase('ABCedfgDDDddd'),LOWER('ABCedfgDDDddd'),UCASE('ABCedfgDDDddd'),UPPER('ABCedfgDDDddd') ;# TRIM(s) 去掉字符串 s 开始和结尾处的空格# LTRIM(s) 去掉字符串 s 开始空格# RTRIM(s) 去掉字符串 s 结尾处的空格select TRIM(' abc def '),LTRIM(' abc def '),RTRIM(' abc def ');# SUBSTR(s, start, length) SUBSTRING 从字符串 s 的 start 位置截取长度为 length 的子字符串select substr("abcdefg1234566",4,5) ;# POSITION(s1 IN s) 从字符串 s 中获取 s1 的开始位置select POSITION("123" in "abcdefg1235")# REPEAT(s,n) 将字符串 s 重复 n 次select REPEAT("hello-",5);# REVERSE(s) 将字符串s的顺序反过来select REVERSE("abcdefg") ;# STRCMP(s1,s2) 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1
4.4.3 日期函数函数 说明 CURDATE()/CURRENT_DATE() 返回当前日期 CURRENT_TIME()/CURTIME() 返回当前时间 CURRENT_TIMESTAMP() 返回当前日期和时间 ADDDATE(d,n) 计算起始日期 d 加上 n 天的日期 ADDTIME(t,n) 时间 t 加上 n 秒的时间 DATE() 从日期或日期时间表达式中提取日期值 DAY(d) 返回日期值 d 的日期部分 DATEDIFF(d1,d2) 计算日期 d1->d2 之间相隔的天数 DATE_FORMAT(f) 按表达式 f的要求显示日期 d DAYNAME(d) 返回日期 d 是星期几,如 Monday,Tuesday DAYOFMONTH(d) 计算日期 d 是本月的第几天 DAYOFWEEK(d) 日期 d 今天是星期几,1 星期日,2 星期一,以此类推 EXTRACT(type FROM d) 从日期 d 中获取指定的值,type 指定返回的值