MySQL中常用的函数
字符串函数
合并字符串
1
2concat();
concat("Hello"," World");#Hello world,当传入的参数又一个为null时结果为null获取字符串的长度
1
length(str);#空格也算一个字符,计算的是字节的长度,一个汉字占两个字节
字母大小写转换函数
1
2upper();#将传入的字符全部转换为大写
lower();#将传入的字符全部转换为小写在字符串中查找字符
1
2
3
4locate(str1,str);# 返回str中字符串str1的开始位置
position(str1 IN str);# 返回str中字符串str1的开始位置
instr(str,str1); # 返回str中字符串str1的开始位置截取字符串
1
2
3
4left(str,num);# 从左边截取,字符串是str,长度是num
right(str,num);# 从右边截取,字符串是str,长度是num
substring(str,num,len);# 字符串是str,从num位置开始,长度是len,包含num位置
mid(str,num,len);# 字符串是str,从num位置开始,长度是len,包含num位置去掉字符串首位空格
1
2
3ltrim(str);# 去除字符串开始的空格
rtrim(str);# 去除字符串后面的空格
trim(str);# 去除字符串首位的空格替换字符串
1
replace(str1,str2,str3);# str1是原字符串,str2是需要替换的字符串,str3是替换str2的字符串
数值函数
获取随机数:
1
RAND();# 返回的数完全随机
获取整数的函数:
1
2
3CEIL(num);# 上取整
FLOOR(num);# 下取整截取数值函数:
1
TRUNCATE(x,y);#x表示要截取的数值,y表示小数点后几位,也就是保留几位小数,是直接舍去,而不是四舍五入.
四舍五入函数:
1
2ROUND(x);
ROUND(x,y);# 返回数值x保留到小数点后y位
日期函数:
获取当前日期和时间函数
1
2
3
4now();# 当前日期和时间
locatime();# 当前日期和时间
current_timestamp();# 当前日期和时间
SYSDTAE();# 当前日期和时间当前日期
1
2curdate();# 当前日期
current_date();# 当前日期当前时间
1
2curtime();
current_time();各种方式显示日期和时间
1
2
3
4unix_timestamp(日期类型的字符串);# 将日期类型的字符串转化为整形(秒数),UNIX格式
from_unixtime("整形");# 将整形字符串转化为日期,普通格式
UTC_DATE();# utc日期,只有日期
UTC_TIME();# utc时间 ,只有时间获取日期和时间各部分值
1
2
3
4
5
6
7
8
9SELECT NOW() 当前日期和时间,
YEAR(NOW()) 年,
QUARTER(NOW()) 季度,
MONTH(NOW()) 月,
WEEK(NOW())星期,
DAYOFMONTH(NOW()) 天,
HOUR(NOW()) 小时,
MINUTE(NOW()) 分,
SECOND(NOW()) 秒;月(参数都是日期类型的字符串)
1
2MONTH(date);
MONTHNAME(date);星期
1
2
3
4
5
6week(date);# 年中第几个星期
weekofyear(date);# 年中第几个星期
dayname(date);# 星期,英文显示
dayofweek(date);# 星期(不理解,用下面的)
weekday(date);# 星期,数字表示天
1
2dayofyear(date);# 年中的第几天
dayofmonth(date);# 月中的第几天EXTRACT函数
1
2
3
4
5
6EXTRACT(YEAR from NOW()); # 年
EXTRACT(month from NOW()); # 月
EXTRACT(day from NOW()); # 日
EXTRACT(hour from NOW()); # 时
EXTRACT(minutefrom NOW()); # 分
EXTRACT(second from NOW()); # 秒计算日期和时间的函数
1
2
3
4
5SELECT NOW() 当前日期和时间,
TO_DAYS(NOW()) 相隔天数, # 距离0000年1月1日
FROM_DAYS(TO_DAYS(NOW())) 一段时间后日期和时间,
DATEDIFF(NOW(),'2000-12-01') 相隔天数;
TIMEDIFF('2021-12-15 09:36:46','2021-12-15 09:38:25') 相隔时间;与指定日期和时间操作:
1
2
3
4
5
6ADDDATE(date,n); # 计算date加上n天后的日期
SUBDATE(date,n); # 计算date减去n天后的日期
ADDDATE(d,INTERVAL expr type);# type的类型查看#http://www.w3school.com.cn/sql/func_date_add.asp
SUBDATE(d,INTERVAL expr type);
# 例子
select adddate(now(),interval '2,3' year_month ) '2年3个月后的日期';