共计 10066 个字符,预计需要花费 26 分钟才能阅读完成。
本篇内容主要讲解“MySQL 数据库字符串函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“MySQL 数据库字符串函数有哪些”吧!
第一类:字符串函数
1、conv(n,from_base,to_base): 对 from_base 进制的数 n, 转成 to_base 进制的表示方式(PS: 进制范围为 2 -36 进制, 当 to_base 是负数时,n 作为有符号数否则作无符号数)
mysql select conv(a ,16,2);
– 1010
mysql select conv(6e ,16,10);
– 110
mysql select conv(-17,16,-10);
– -23
2、bin(n)/oct(n)/hex(n):返回 10 进制数 n 对应的二进制 / 八进制 / 十六进制的表示方式
mysql select bin(12);
– 1100
mysql select oct(12);
– 14
mysql select hex(255);
– ff
3、char(n,…):返回多个 ascii 码对应的字符组成的字符串
mysql select char(77,121,83,81, 76
– mysql
mysql select char(77,77.3, 77.3
– mmm
4、concat(str1,str2,…):将多个参数拼接成一个字符串,只要有一个为 null, 就返回 null。
mysql select concat(my , s , ql
– mysql
mysql select concat(my , null, ql
– null
mysql select concat(14.3);
– 14.3
4、length(str)/octet_length(str):返回参数对应的默认字符集的所有字节数。
5、char_length(str)/character_length(str):返回字符串 str 的字符长度
mysql select length(text
– 4
mysql select octet_length(text
– 4
6、locate(substr,str)/position(substr in str)/instr(str,substr):返回字符串 substr 在字符串 str 第一次出现的位置(str 不包含 substr 时返回 0)
mysql select locate(bar , foobarbar
– 4
mysql select locate(xbar , foobar
– 0
mysql select instr(foobarbar , bar
– 4
7、locate(substr,str,pos):返回字符串 substr 在字符串 str 的第 pos 个位置开始算起,第一次出现的位置(str 不包含 substr 时返回 0)
mysql select locate(bar , foobarbar ,5);
– 7
8、lpad(str,len,padstr)/rpad(str,len,padstr):用字符串 padstr 填补 str 左端 / 右端直到字串长度为 len 并返回
mysql select lpad(hi ,4, ??
– ??hi
mysql select rpad(hi ,5, ?
– hi???
9、left(str,len)/right(str,len):返回字符串 str 的左端 / 右端的 len 个字符
mysql select left(foobarbar , 5);
– fooba
mysql select right(foobarbar , 4);
– rbar
10、substring(str,pos,len)/substring(str from pos for len)/mid(str,pos,len):返回字符串 str 的位置 pos 起 len 个字符
mysql select substring(quadratically ,5,6);
– ratica
11、substring(str,pos)/substring(str from pos):返回字符串 str 的位置 pos 起的一个子串,pos 为负数时,倒数后截取到最后
mysql select substring(quadratically ,5);
– ratically
mysql select substring(foobarbar from 4);
– barbar
12、substring_index(str,delim,count):返回从字符串 str 的第 count 个出现的分隔符 delim 之后的子串
(count 为正数时返回左端, 否则返回右端子串)
mysql select substring_index(MySQL , . , 2);
– www.mysql
mysql select substring_index(www.mysql.com , . , -2);
– mysql.com
13、ltrim(str)/rtrim(str):返回删除了左空格 / 右空格的字符串 str
mysql select ltrim(barbar
– barbar
mysql select rtrim(barbar
– barbar
14、trim([[both | leading | trailing] [remstr] from] str):返回前缀或后缀 remstr 被删除了的字符串 str(位置参数默认 both,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
15、space(n):返回由 n 个空格字符组成的一个字符串
mysql select space(6);
–
16、replace(str,from_str,to_str):用字符串 to_str 替换字符串 str 中的子串 from_str 并返回
mysql select replace(www.mysql.com , w , ww
– wwwwww.mysql.com
17、repeat(str,count):返回由 count 个字符串 str 连成的一个字符串(任何参数为 null 时
返回 null,count = 0 时返回一个空字符串)
mysql select repeat(mysql , 3);
– mysqlmysqlmysql
18、reverse(str):颠倒字符串 str 的字符顺序并返回
mysql select reverse(abc
– cba
19、insert(str,pos,len,newstr)
作用:把字符串 str 由位置 pos 起 len 个字符长的子串替换为字符串 newstr 并返回
mysql select insert(quadratic , 3, 4, what
– quwhattic
20、lcase(str)/lower(str)/ucase(str)/upper(str):返回 str 的大小写
21、elt(n,str1,str2,str3,…):返回第 n 个字符串(n 小于 1 或大于参数个数返回 null)
mysql select elt(1, ej , heja , hej , foo
– ej
mysql select elt(4, ej , heja , hej , foo
– foo
二、数学函数
1、pow(x,y)/power(x,y):返回值 x 的 y 次幂
mysql select pow(2,2);
– 4.000000
mysql select pow(2,-2);
– 0.250000
2、sqrt(n):返回非负数 n 的平方根
mysql select sqrt(4);
– 2.000000
mysql select sqrt(20);
– 4.472136
3、pi():返回圆周率
mysql select pi();
– 3.141593
4、rand()/rand(n):返回在范围 0 到 1.0 内的随机浮点值(可以使用数字 n 作为初始值)
mysql select rand();
– 0.5925
mysql select rand(20);
– 0.1811
mysql select rand(20);
– 0.1811
mysql select rand();
– 0.2079
mysql select rand();
– 0.7888
5、truncate(n,d):保留数字 n 的 d 位小数并返回
mysql select truncate(1.223,1);
– 1.2
mysql select truncate(1.999,1);
– 1.9
mysql select truncate(1.999,0);
– 1
6、least(x,y,…):返回最小值 (如果返回值被用在整数(实数或大小敏感字串) 上下文或所有参数都是整数 (实数或大小敏感字串) 则他们作为整数 (实数或大小敏感字串) 比较, 否则按忽略大小写的字符串被比较)
mysql select least(2,0);
– 0
mysql select least(34.0,3.0,5.0,767.0);
– 3.0
mysql select least(b , a , c
– a
7、greatest(x,y,…):返回最大值(其余同 least())
mysql select greatest(2,0);
– 2
mysql select greatest(34.0,3.0,5.0,767.0);
– 767.0
mysql select greatest(b , a , c
– c
8、mod(n,m):取模运算, 返回 n 被 m 除的余数(同 % 操作符)
9、floor(n):返回不大于 n 的最大整数值
10、ceiling(n):返回不小于 n 的最小整数值
mysql select ceiling(1.23);
– 2
mysql select ceiling(-1.23);
– -1
11、round(n,d):返回 n 的四舍五入值, 保留 d 位小数(d 的默认值为 0)
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
12、abs(n):返回 n 的绝对值
13、sign(n):返回参数的符号(为 -1、0 或 1)
mysql select sign(-32);
– -1
mysql select sign(0);
– 0
mysql select sign(234);
– 1
14、exp(n) : 返回值 e 的 n 次方(自然对数的底)
mysql select exp(2);
– 7.389056
mysql select exp(-2);
– 0.135335
15、log(n) : 返回 n 的自然对数
mysql select log(2);
– 0.693147
mysql select log(-2);
– null
16、log10(n) : 返回 n 以 10 为底的对数
mysql select log10(2);
– 0.301030
mysql select log10(100);
– 2.000000
mysql select log10(-100);
– null
17、cos(n):返回 n 的余弦值
mysql select cos(pi());
– -1.000000
18、sin(n):返回 n 的正弦值
mysql select sin(pi());
– 0.000000
19、tan(n):返回 n 的正切值
mysql select tan(pi()+1);
– 1.557408
20、acos(n) : 返回 n 反余弦(n 是余弦值, 在 - 1 到 1 的范围, 否则返回 null)
mysql select acos(1);
– 0.000000
mysql select acos(1.0001);
– null
mysql select acos(0);
– 1.570796
21、asin(n):返回 n 反正弦值
mysql select asin(0.2);
– 0.201358
mysql select asin(foo
– 0.000000
22、atan(n):返回 n 的反正切值
mysql select atan(2);
– 1.107149
mysql select atan(-2);
– -1.107149
23、atan2(x,y):返回 2 个变量 x 和 y 的反正切(类似 y / x 的反正切, 符号决定象限)
mysql select atan(-2,2);
– -0.785398
mysql select atan(pi(),0);
– 1.570796
24、cot(n):返回 x 的余切
mysql select cot(12);
– -1.57267341
mysql select cot(0);
– null
25、degrees(n):把 n 从弧度变换为角度并返回
mysql select degrees(pi());
– 180.000000
26、radians(n):把 n 从角度变换为弧度并返回
mysql select radians(90);
– 1.570796
三、时期时间函数
1、curdate() /current_date() : 以 yyyy-mm-dd 或 yyyymmdd 格式返回当前日期值(根据返回值所处上下文是字符串或数字)
mysql select curdate();
– 1997-12-15
mysql select curdate() + 0;
– 19971215
2、curtime() / current_time() : 以 hh:mm:ss 或 hhmmss 格式返回当前时间值(根据返回值所处上下文是字符串或数字)
mysql select curtime();
– 23:50:26
mysql select curtime() + 0;
– 235026
3、now()/sysdate()/current_timestamp() : 以 yyyy-mm-dd hh:mm:ss 或 yyyymmddhhmmss 格式返回当前日期
时间(根据返回值所处上下文是字符串或数字)
mysql select now();
– 1997-12-15 23:50:26
mysql select now() + 0;
– 19971215235026
4、dayofweek(date) : 返回日期 date 是星期几(1= 星期天,2= 星期一,……7= 星期六,odbc 标准)
mysql select dayofweek(1998-02-03
– 3
5、weekday(date) : 返回日期 date 是星期几(0= 星期一,1= 星期二,……6= 星期天)。
mysql select weekday(1997-10-04 22:23:00
– 5
mysql select weekday(1997-11-05
– 2
6、dayname(date) : 返回 date 是星期几(按英文名返回)
mysql select dayname(1998-02-05
– thursday
7、dayofmonth(date) : 返回 date 是一月中的第几日(在 1 到 31 范围内)
mysql select dayofmonth(1998-02-03
– 3
8、dayofyear(date) : 返回 date 是一年中的第几日(在 1 到 366 范围内)
mysql select dayofyear(1998-02-03
– 34
9、month(date) : 返回 date 中的月份数值
mysql select month(1998-02-03
– 2
10、monthname(date): 返回 date 是几月(按英文名返回)
mysql select monthname(1998-02-05
– february
11、quarter(date): 返回 date 是一年的第几个季度
mysql select quarter(98-04-01
– 2
12、week(date,first) : 返回 date 是一年的第几周(first 默认值 0,first 取值 1 表示周一是周的开始,0 从周日开始)
mysql select week(1998-02-20
– 7
mysql select week(1998-02-20 ,0);
– 7
mysql select week(1998-02-20 ,1);
– 8
13、year(date): 返回 date 的年份(范围在 1000 到 9999)
mysql select year(98-02-03
– 1998
14、hour(time) : 返回 time 的小时数(范围是 0 到 23)
mysql select hour(10:05:03
– 10
15、minute(time) : 返回 time 的分钟数(范围是 0 到 59)
mysql select minute(98-02-03 10:05:03
– 5
16、second(time) : 返回 time 的秒数(范围是 0 到 59)
mysql select second(10:05:03
– 3
17、period_add(p,n) : 增加 n 个月到时期 p 并返回(p 的格式 yymm 或 yyyymm)
mysql select period_add(9801,2);
– 199803
18、period_diff(p1,p2) : 返回在时期 p1 和 p2 之间月数(p1 和 p2 的格式 yymm 或 yyyymm)
mysql select period_diff(9802,199703);
– 11
19、date_add(date,interval expr type)/date_sub(date,interval expr type)/adddate(date,interval expr type)/subdate(date,interval expr type) 对日期时间进行加减法运算。(也可以用运算符 + 和 -。date: 一个 datetime 或 date 值;expr: 对 date 进行加减法的一个表达式字符串;type 指明表达式 expr 应该如何被解释)
type 含义 表达式的格式
second 秒 seconds
minute 分 minutes
hour 时 hours
day 天 days
month 月 months
year 年 years
minute_second 分钟和秒 minutes:seconds
hour_minute 小时和分钟 hours:minutes
day_hour 天和小时 days:hours
year_month 年和月 years-months
hour_second 小时分钟秒 hours:minutes:seconds
day_minute 天小时分钟 days:hours:minutes
day_second 天小时分钟秒 days:hours:minutes:seconds
expr 中允许任何标点做分隔符, 如果所有是 date 值时结果是一个 date 值, 否则结果是一个 datetime 值。day_second 因为缺少小时分钟等于 minute_second。如果增加 month、year_month 或 year, 天数大于结果月份的最大天数则使用最大天数
mysql select 1997-12-31 23:59:59 + interval 1 second;
– 1998-01-01 00:00:00
mysql select interval 1 day + 1997-12-31
– 1998-01-01
mysql select 1998-01-01 – interval 1 second;
– 1997-12-31 23:59:59
mysql select date_add(1997-12-31 23:59:59 ,interval 1 second);
– 1998-01-01 00:00:00
mysql select date_add(1997-12-31 23:59:59 ,interval 1 day);
– 1998-01-01 23:59:59
mysql select date_add(1997-12-31 23:59:59 ,interval 1:1 minute_second);
– 1998-01-01 00:01:00
mysql select date_sub(1998-01-01 00:00:00 ,interval 1:1:1:1 day_second);
– 1997-12-30 22:58:59
mysql select date_add(1998-01-01 00:00:00 , interval -1:10 day_hour);
– 1997-12-30 14:00:00
mysql select date_sub(1998-01-02 , interval 31 day);
– 1997-12-02
20、extract(part from date):用于截取时间分量
mysql select extract(year from 1999-07-02
– 1999
mysql select extract(year_month from 1999-07-02 01:02:03
– 199907
mysql select extract(day_minute from 1999-07-02 01:02:03
– 20102
20、date_format(date,format):根据 format 字符串格式化 date 值
(在 format 字符串中可用标志符:
%m 月名字(january……december)
%w 星期名字(sunday……saturday)
%d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(sun……sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(jan……dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [ap]m)
%t 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p am 或 pm
%w 一个星期中的天数(0=sunday ……6=saturday)
%U 星期(0……53), 这里星期天是星期的第一天
%u 星期(0……53), 这里星期一是星期的第一天
%% 字符 % )
mysql select date_format(1997-10-04 22:23:00 , %w %m %y
– saturday october 1997
mysql select date_format(1997-10-04 22:23:00 , %h:%i:%s
– 22:23:00
mysql select date_format(1997-10-04 22:23:00 , %d %y %a %d %m %b %j
– 4th 97 sat 04 10 oct 277
mysql select date_format(1997-10-04 22:23:00 , %h %k %i %r %t %s %w
– 22 22 10 10:23:00 pm 22:23:00 00 6
21、time_format(time,format):和 date_format()类似, 但 time_format 只处理小时、分钟和秒(其余符号产生一个 null 值或 0)
22、unix_timestamp() | unix_timestamp(date):返回一个 unix 时间戳(从 1970-01-01 00:00:00 gmt 开始的秒数,date 默认值为当前时间)
mysql select unix_timestamp();
– 882226357
mysql select unix_timestamp(1997-10-04 22:23:00
– 875996580
23、from_unixtime(unix_timestamp):以 yyyy-mm-dd hh:mm:ss 或 yyyymmddhhmmss 格式返回时间戳的值(根据返回值所处上下文是字符串或数字)
mysql select from_unixtime(875996580);
– 1997-10-04 22:23:00
mysql select from_unixtime(875996580) + 0;
– 19971004222300
24、from_unixtime(unix_timestamp,format):以 format 字符串格式返回时间戳的值
mysql select from_unixtime(unix_timestamp(), %y %d %m % h:%i:%s %x
– 1997 23rd december 03:43:30 x
25、sec_to_time(seconds):以 hh:mm:ss 或 hhmmss 格式返回秒数转成的 time 值(根据返回值所处上下文是字符串或数字)
mysql select sec_to_time(2378);
– 00:39:38
mysql select sec_to_time(2378) + 0;
– 3938
26、time_to_sec(time):返回 time 值有多少秒
mysql select time_to_sec(22:23:00
– 80580
mysql select time_to_sec(00:39:38
– 2378
到此,相信大家对“MySQL 数据库字符串函数有哪些”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!