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()

​ 返回数据库的版本号

posted @ 2021-04-27 17:45  华青少年  阅读(492)  评论(0)    收藏  举报