MySQL数据库字符串函数有哪些

58次阅读
没有评论

共计 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 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计10066字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)