14、mysql函数
MySQL 有很多内置的函数,以下列出了这些函数的说明。
1、mysql字符串函数
select ascii('A'); -- 返回字符串首字母的ASCII值
select char_length('A中国');-- 返回字符串字符数
select CHARACTER_LENGTH('A中国');-- 返回字符串字符数
select concat('a','b');-- 连接两个字符串
select concat_ws('-','a','b','c');-- 以-分隔符连接多个字符串
select field('a','a','b','c');-- 返回第一个字符串在列表中的位置
select FIND_IN_SET('c','a,bc,f,c');-- 返回字符串在后面字符串中的位置
select FORMAT(12.22,3);-- 数字格式化,3位小数
select insert('abcdefg',3,2,'hh');-- 从字符串1第三个字符开始,长度为2 替换为第二个字符串
select locate('abcdef','c');-- 返回字符串2在字符串1中的其实位置
select lcase('ABCd'); -- 大写变小写
select LEFT('aaacdf',2);-- 取左2位,太棒啦
select right('aaacdf',2);-- 取右2位,太棒啦
select LOWER('AGFD'); -- 大写变小写
select UPPER('aff'); -- 小写变大写
select UCASE(str);
select lpad('aa',5,'X');-- 左填充
select rpad('aa',5,'X');
select LTRIM(' aaa');-- 左去空格
select RTRIM(str);
select trim(str);
select MID(str,pos,len);
select POSITION(substr IN str);
select REPEAT(str,count);
SELECT REPLACE(str,from_str,to_str);
select SPACE(N);
select STRCMP(expr1,expr2);-- 比较两个字符串,相等0,大于1,小于-1
select substr('abcdfdff',2,5);-- 截取
select SUBSTR(str,pos,len);
select SUBSTRING_INDEX(str,delim,count);
2、mysql数字函数
select ABS(X);
select ACOS(X);
select ASIN(X);
select ATAN(X);
select AVG([DISTINCT] expr);
select CEIL(X);
select CEILING(X);
select COS(X);
select COT(X);
select COUNT(expr);
select DEGREES(X);
select n div m;
select EXP(X);
select GREATEST(value1,value2,...);
select LEAST(value1,value2,...);
select LN(X);
select LOG(X);
select LOG10(X);
select MAX(expr);
select MIN(expr);
select `MOD`(N,M);
select PI();
select POW(X,Y);
select POWER(X,Y);
select RADIANS(X);
select RAND();
select ROUND(X,D);
select SIGN(X);
select SIN(X);
select SQRT(X);
select SUM(expr);
select TAN(X);
select TRUNCATE(X,D);
3、mysql日期函数
ADDTIME(t,n) 时间 t 加上 n 秒的时间
CURDATE() 返回当前日期
CURRENT_DATE() 返回当前日期
CURRENT_TIME 返回当前时间
CURRENT_TIMESTAMP() 返回当前日期和时间
CURTIME() 返回当前时间
DATE() 从日期或日期时间表达式中提取日期值
DATEDIFF(d1,d2) 计算日期 d1->d2 之间相隔的天数
DATE_ADD(d,INTERVAL expr type) 计算起始日期 d 加上一个时间段后的日期
DATE_FORMAT(d,f) 按表达式 f的要求显示日期 d
DATE_SUB(date,INTERVAL expr type) 函数从日期减去指定的时间间隔。
DAY(d) 返回日期值 d 的日期部分
DAYNAME(d) 返回日期 d 是星期几,如 Monday,Tuesday
DAYOFMONTH(d) 计算日期 d 是本月的第几天
DAYOFWEEK(d) 日期 d 今天是星期几,1 星期日,2 星期一,以此类推
DAYOFYEAR(d) 计算日期 d 是本年的第几天
EXTRACT(type FROM d)
FROM_DAYS(n) 计算从 0000 年 1 月 1 日开始 n 天后的日期
HOUR(t) 返回 t 中的小时值
LAST_DAY(d) 返回给给定日期的那一月份的最后一天
LOCALTIME() 返回当前日期和时间
LOCALTIMESTAMP() 返回当前日期和时间
MAKEDATE(year, day-of-year) 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期
MAKETIME(hour, minute, second) 组合时间,参数分别为小时、分钟、秒
MICROSECOND(date) 返回日期参数所对应的微秒数
MINUTE(t) 返回 t 中的分钟值
MONTHNAME(d) 返回日期当中的月份名称,如 November
MONTH(d) 返回日期d中的月份值,1 到 12
NOW() 返回当前日期和时间
PERIOD_ADD(period, number) 为 年-月 组合日期添加一个时段
PERIOD_DIFF(period1, period2) 返回两个时段之间的月份差值
QUARTER(d) 返回日期d是第几季节,返回 1 到 4
SECOND(t) 返回 t 中的秒钟值
SEC_TO_TIME(s) 将以秒为单位的时间 s 转换为时分秒的格式
STR_TO_DATE(string, format_mask) 将字符串转变为日期
SUBDATE(d,n) 日期 d 减去 n 天后的日期
SUBTIME(t,n) 时间 t 减去 n 秒的时间
SYSDATE() 返回当前日期和时间
TIME(expression) 提取传入表达式的时间部分
TIME_FORMAT(t,f) 按表达式 f 的要求显示时间 t
TIME_TO_SEC(t) 将时间 t 转换为秒
TIMEDIFF(time1, time2) 计算时间差值
TIMESTAMP(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
TO_DAYS(d) 计算日期 d 距离 0000 年 1 月 1 日的天数
WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
WEEKDAY(d) 日期 d 是星期几,0 表示星期一,1 表示星期二
WEEKOFYEAR(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
YEAR(d) 返回年份
YEARWEEK(date, mode) 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推
4、mysql高级函数
select version();-- 返回数据库的版本号
select USER();-- 返回当前用户
select SYSTEM_USER();-- 返回当前用户
select SESSION_USER();-- 返回当前用户
select NULLIF(expr1,expr2);-- 比较两个字符串,相等返回null,不等返回expr1
select LAST_INSERT_ID();
select IFNULL(expr1,expr2);-- 如果1不为null返回1,否则返回2
select IF(expr1,expr2,expr3);
select CURRENT_USER();
select CONVERT(expr USING transcoding_name);
select CONV(N,from_base,to_base);
select `COALESCE`(value,...);
select CAST(expr AS type);
case when;
select BINARY;
select BIN(N);