1.字符串函数
(1)大小写处理
将字符串转换成大写的
UPPER(str)
SELECT UPPER(ENAME) from emp;
将字符串转换为小写的LOWER(str)
mysql> SELECT LOWER('QUADRATICALLY');
-> 'quadratically'
(2)CONCAT(str1,str2,...)字符串连接
CONCAT(str1,str2,...)
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
(3) SUBSTRING(str,pos,len)
str为字符串;
pos为起始位置;
len为长度。
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'
(4)LENGTH(str)字符串长度
mysql> SELECT LENGTH('text');
-> 4
(5)INSTR(str,substr) 返回字符串 str 中子字符串的第一个出现位置mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0
(6)LPAD(str,len,padstr)返回字符串 str, 其左边由字符串padstr 填补到len 字符长度。假如str 的长度大于len, 则返回值被缩短至 len 字符。mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
mysql> SELECT LPAD('hi',1,'??');
-> 'h'
(7)RPAD(str,len,padstr)返回字符串str,
其右边被字符串 padstr填补至len 字符长度。假如字符串str 的长度大于 len,则返回值被缩短到与 len 字符相同长度。mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
-> 'h'
(8)TRIM([remstrFROM] str)返回字符串 str , 其中所有remstr 前缀和/或后缀都已被删除 remstr 为可选项,在未指定情况下,可删除空格。mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
(1)ABS(X) 返回X 的绝对值
mysql> SELECT ABS(2);
-> 2
mysql> SELECT ABS(-32);
-> 32
(2)ACOS(X)返回X 反余弦, 即, 余弦是X的值。若X 不在-1到 1的范围之内,则返回 NULL mysql> SELECT ACOS(1);
-> 0
mysql> SELECT ACOS(1.0001);
-> NULL
(3)ASIN(X) 返回X 的反正弦,即,正弦为X 的值。若X 若X 不在-1到 1的范围之内,则返回 NULL 。
mysql> SELECT ASIN(0.2);
-> 0.20135792079033
(4)EXP(X) 返回e的X乘方后的值(自然对数的底)。mysql> SELECT EXP(2);
-> 7.3890560989307
mysql> SELECT EXP(-2);
-> 0.13533528323661
(5)ROUND(X) ROUND(X,D) 返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。mysql> SELECT ROUND(-1.23);
-> -1
mysql> SELECT ROUND(-1.58);
-> -2
mysql> SELECT ROUND(1.58);
-> 2
mysql> SELECT ROUND(1.298, 1);
-> 1.3
mysql> SELECT ROUND(1.298, 0);
-> 1
mysql> SELECT ROUND(23.298, -1);
-> 20
(6)TRUNCATE(X,D)
返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有低位的值mysql> SELECT TRUNCATE(1.223,1);
-> 1.2
mysql> SELECT TRUNCATE(1.999,1);
-> 1.9
mysql> SELECT TRUNCATE(1.999,0);
-> 1
mysql> SELECT TRUNCATE(-1.999,1);
-> -1.9
mysql> SELECT TRUNCATE(122,-2);
-> 100
mysql> SELECT TRUNCATE(10.28*100,0);
-> 1028
3.日期函数
(1)CURDATE() 将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
mysql> SELECT CURDATE();
-> '1997-12-15'
mysql> SELECT CURDATE() + 0;
-> 19971215
(2)CURTIME() 将当前时间以'HH:MM:SS'或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定。mysql> SELECT CURTIME();
-> '23:50:26'
mysql> SELECT CURTIME() + 0;
-> 235026
(3)DATE(expr) 提取日期或时间日期表达式expr中的日期部分。mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'
(4)DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31