mysql截取字符串中的英文字符_mysql中截取字符串函数left()、right()、substring()、substring_inedx()...

最近在写PHP的接口服务,需要从Mysql数据库按日期(不带时间)查询数据,而数据库中字段是按照“日期+时间”存储的,因此想到了使用Mysql字符串截取函数截取日期部分。

简单经过总结,在Mysql处理字符串截取的函数有以下几个可以使用:

1.left(str, len),返回字符串str左侧的字符

2. right(str, len),返回字符串str右侧的字符

3. substring(str, pos)/ substring(str, pos, len),返回字符串str的子串

4. substring_index(str, delim, count),根据定界符以及count,返回字符串str的子串

下面简单介绍以上四个函数的用法:

1.left(str, len)

left() 函数返回字符串str左侧长度为 len 的字符,如下:-- 返回当前时间的日期(日期字符串左侧的10个字符)

SELECT LEFT(NOW(),10);

结果如下图:

cba2443251c0981aa432b82b43b18473.png

2.right(str, len)

right() 函数返回字符串str左侧长度为 len 的字符,如下:-- 返回当前时间(日期字符串右侧的8个字符)

SELECT RIGHT(NOW(),8);

结果如下:

4768f7e14c7264ac084912a16f3d37a7.png

3.substring(str, pos)/ substring(str, pos, len)

substring() 函数返回字符串str从指定位置pos开始的子串,如果不指定截取的长度值len,则截取从位置pos开始到字符串str结束的全部子串;如果指定截取的长度len,则截取从位置pos开始长度为len的子串。

注意:

1. pos的索引值从1开始,而不是0

2. 返回的子字符串包含pos位置的字符

举例1:-- 返回从第2个字符开始到结束的子串

SELECT SUBSTRING('123456',2);

04a367b170fc03eb9c8c8d78e7cf5153.png

举例2:

-- 返回从第2个字符开始,截取长度为2的子串

SELECT SUBSTRING('123456',2,2);

e5204739b1ee0e408f5f1406b4607c73.png

4.substring_index(str, delim, count)

substring_index() 函数根据定界符delim以及匹配到的定界符的数量count,返回字符串str的子串。

注意:

1. 如果count为正值,则返回匹配到的第count个定界符(从左边开始)左边的一切内容(不包含定界符)

2. 如果count为负值,则返回匹配到的第count个定界符(从右边开始)右边的一切内容(不包含定界符)。

举例1:-- 以逗号','为定界符,返回匹配到的第2个定界符左边的所有内容

select substring_index('a,b,c,d',',',2);

b2a714f11d3e067c694b2097e5657919.png

举例2:-- 以逗号','为定界符,返回匹配到的第2个定界符右边的所有内容

SELECT SUBSTRING_INDEX('a,b,c,d',',',-2);

89c54a8103b899dbab7148fb7f0efa52.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值