mysql中的内置函数
字符串函数
1、ASCLL(s)
返回字符串s的第一个字符的ascll
2、char_length(s)
返回字符串s的字符个数
3、character_length(s)
返回字符串的字符数
4、concat(s1,s2,s3...)
字符串s1,s2,s3,...拼接合并为一个字符串
5、concat_ws(x,s1,s2,...)
合并字符串,并使用x隔开
6、field(s,s1,s2...)
返回字符串s在字符串列表[s1,s2...]中的位置
7、find_in_set(s1,s2)
返回s1在s2中的返回位置
8、format(x,n)
格式化数字x,保留到小数点后n位
9、insert(s1,x,len,s2)
字符串s2,替换s1的从x位置开始长度为len的字符串
10、locate(s1,s)
从字符串 s 中获取 s1 的开始位置。从0开始
11、lcase(s)
将字符串s中的所有字母变成小写字母
12、left(s,n)
返回字符串 s 的前 n 个字符串
13、lower(s)
将字符串转换成小写字母
14、lpad(s1,len,s2)
在字符串 s1 的开始位置填充字符串s2,使得字符串长度达到len
15、ltrim(s)
去掉字符串s开始处的空格
16、mid(s,n,len)
从字符串s的n位置截取长度为len的子字符串。同 substring(s,n,len)
17、position(s1 in s)
从字符串 s 中获取 s1 的开始位置
18、repeat(s,n)
将字符串 s 重复 n 次
19、replace(s,s1,s2)
将字符串s2代替字符串s中的字符串s1
20、reverse(s)
将字符串s的顺序反过来
21、right(s,n)
返回字符串s的后n个字符
22、rpad(s1,len,s2)
在字符串s1的结束位置添加字符串s2,使字符串长度达到len
23、rtrim(s)
去掉字符串s结尾处的空格
24、space(n)
返回n个空格
25、strcmp(s1,s2)
比较字符串大小。相等返回0;s1大返回1;s1小返回0
26、substr(s,start,length)
从字符串s的start位置截取长度为length的子字符串
17、substaring(s,start,length)
同 substr 同mid
19、substring_index(s,delimiter,number)
返回字符串 s 的第 number 个出现的分隔符delimiter之后的字串。如果number是负数,从左向右
20、ucase(s)
将字符串转换为大写
21、upper(s)
将字符串转换为大写
数字函数
1、abs(x)
返回x的绝对值
2、acos(x)
返回x的反余弦值
3、asin(x)
返回反正弦值
4、atan(x)
返回反正切值
5、atan2(n,m)
返回反正切值
6、avg(e)
返回字段平均值
7、ceil(x)
返回大于或等于x的最小整数
8、ceiling(x)
返回大于或等于x的最小整合素
9、cos(x)
返回余弦值
10、cot(x)
返回余切值
11、count(e)
返回查询的记录总数
12、degrees(s)
将弧度转化为角度
13、n div m
整除 10 div 5 -- 2
14、exp(x)
返回e的x次方
15、floor(x)
返回小于或等于x的最大整数
16、greatest(e1,e2,e3...)
返回列表中的最大值
17、least(e1,e2,...)
返回表中的最小值
18、ln(x)
返回数字的自然对数,以e为底
19、log(x) log(base,x)
返回自然对数,默认e为底,可指定base为底
20、log10(x)
返回以10为底的对数
21、log2(x)
返回以2为底的对数
22、max(e)
返回字段中的最大值
23、min(e)
返回字段中的最小值
24、mod(x,y)
返回x除以y以后的余数
25、pi()
返回圆周率
26、pow(x,y)
返回x的y平方
27、power(x,y)
返回x的y平方
28、radians(x)
将角度转换为弧度
29、rand()
返回0到1的随机数
30、round(x)
返回距离x最近的整数
31、sign(x)
返回x的符号。 正数返回1;负数返回-1;0返回0
32、sin(x)
求正弦值
33、sqrt(x)
返回x的平方根
34、sum(e)
返回指定字段的总和
35、tan(x)
返回正切值
36、truncate(x,y)
返回数值x保留到小数点后y位的值
日期格式
1、adddate(d,n)
计算起始日期d加上n天的日期
select adddate('2021-04-27',12); --2021-05-09
SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE) --2011-11-11 11:16:11
2、addtime(t,n)
时间加上秒
select addtime('2021-4-27 11:11:11',55);
3、curdate()
返回当前日期
select curdate(); --2021-04-27
4、current_date()
返回当前日期,同 curdate
5、curtime()
返回当前时间 16:14:35
6、current_time()
返回当前时间
select current_time(); --16:14:35
7、current_timestamp()
返回当前日期和时间
select current_timestamp(); -- 2021-04-27 16:18:11
8、date()
从日期或日期时间表达式中提取日期值。只取日期值
select date('2021-11-12 11:11:11'); -- 2021-11-12
9、datediff(d1,d2)
计算日期 d1到d2 之间相隔的天数
10、date_add(d, interval expr type)
计算起始日期 d 添加一直指定时间段后的日期。同adddate
11、date_format(d,f)
按照表达式要求显示日期
SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
-> 2011-11-11 11:11:11 AM
12、date_sub(date,interval expr type)
从指定日期减去指定时间间隔
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders
13、day(d)
返回日期d中的天数部分
14、dayname(d)
返回日期d是星期几 如 Monday
15、dayofmonth(d)
计算日期 d 是本月第几天
16、dayofweek(d)
计算日期 d 是星期几。 1:星期日 。。
17、dayofyear(d)
计算日期 d 是本年的第几天
18、extract(type from d)
从日期d中获取指定的值
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
https://www.runoob.com/mysql/mysql-functions.html
select extract(minute from '2021-5-6 11:56:44'); -- 56
19、from_days(n)
计算从 0000-1-1 开始n天后的日期
20、hour(t)
返回时间中的小时值
select hour('11:44:55'); --11
select hour('2021-11-12 11:44:55'); --11
21、last_day(d)
返回给定日期的那一个月的最后一天
select last_day('2021-4-27');
select last_day('2021-4-27 11:11:14'); -- 2021-04-30
22、localtime()
返回当前日期和时间
select localtime(); --2021-04-27 16:47:07
23、localtimestamp()
返回当前日期和时间,同 localtime
24、makedate(year,day-of-year)
根据一个年份和天数序号返回一个日期
select makedate(2021,55); -- 2021-02-24
25、maketime(hour,minute,second)
组合时间,参数 小时 分钟 秒
select maketime(5,56,58); --05:56:58
26、microsecond(date)
返回日期参数对应的微秒数,没有返回0
SELECT MICROSECOND("2017-06-20 09:34:00.000023"); --23
27、minute(t)
返回时间中的分钟值
28、monthname(d)
返回日期中的月份名称
29、month(d)
返回日期中的月份值,从1到12
30、now()
返回当前日期和时间
select now(); --2021-04-27 16:55:49
31、period_add(period,number)
为年-月 组合日期添加一个时段
select period_add('202104',4); --202108
32、period_diff(period1,period2)
返回两个时间段之间的月份差,只支持年月组合
select period_diff('202106','202104'); --2
33、quarter(d)
返回日期是第几季度
34、second(t)
返回时间中的秒数
select second('2021-11-11 11:44:55'); --55
35、sec_to_time(s)
将以秒为单位的时间s转换为时分秒的格式
select sec_to_time(5555); --01:32:35
36、str_to_date(string,format_mask)
将字符串转换为日期
SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");
-> 2017-08-10
37、subdate(d,n)
日期d减去n天后的日期
38、subtime(t,n)
日期t减去n秒的时间
39、sysdate()
获取当前日期和时间
30、time(e)
获取传入表达式的时间部分
select time('2021-02-11 11:44:44'); -- 11:44:44
31、time_format(t,f)
按表达式f的要求显示时间
SELECT TIME_FORMAT('11:11:11','%r')
11:11:11 AM
32、time_to_sec(t)
将时间转换为秒
select time_to_sec('2021-4-5 11:4:5'); -- 39845
33、timediff(time1,time2)
计算时间差
34、timestamp(expression,interval)
单参数时,返回日期或日期时间表达式,两个参数时将参数相加
35、to_days(d)
计算日期距离 0000-1-1的天数
36、week(d)
计算日期是本年的第几个星期 范围 0-53
37、weekday(d)
日期d是星期几,0星期一 。。
38、weekofyear(d)
计算日期是本年的第几个星期,范围 0-53
39、year(d)
返回年份
40、yearweek(date)
返回年份及第几周
select yearweek('2021-4-28'); -- 202117
高级函数
1、bin(x)
返回x的二进制编码
2、binary(s)
将字符串s转换为二进制字符串
3、cast(x as type)
转换数据类型
select cast('2021-4-28 11:44:55' as date); --2021-04-28
4、coalesce(e1,e2,e3...)
返回参数中的第一个费控表达式
5、connection_id()
返回唯一的连接id
6、conv(x,f1,f2)
返回f1进制数,转换为f2进制数
select conv(444,10,2); -- 110111100
7、convert(s suing cs)
将字符串s的字符集变成cs
8、current_user()
返回当前用户
select current_user(); -- hq_db_read_only@%
9、database()
返回当前数据库名
10、if(e,v1,v2)
如果表达式e成立,返回v1,否则返回v2
11、ifnull(v1,v2)
如果v1不为null返回v1,否则返回v2
12、isnull(e)
判断表达式是否为 null
13、last_insert-id()
返回最近生成的 auto_increment值
select last_insert_id(); --0
14、nullif(e1,e2)
比较两个字符串,相等返回 null,否则返回e1
15、session_user()
返回当前用户
16、system_user()
返回当前用户
17、user()
返回当前用户
18、version()
返回数据库的版本号

浙公网安备 33010602011771号