有一个需求,
需要在 字符串 '20230410' 中获取 月份(04), 然后变为 (4),
解决:
SELECT cast(left(SUBSTRING('20230410', 5),2) as SIGNED);
用到的函数有
left(str, length)
substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
CAST(2-4 AS SIGNED) 实现CAST()函数以将值转换为SIGNED数据类型。
一.从左开始截取字符串
用法:left(str, length),即:left(被截取字符串, 截取长度)
SELECT LEFT('www.yuanrengu.com',8);
- 1
结果为:www.yuan
二.从右开始截取字符串
用法:right(str, length),即:right(被截取字符串, 截取长度)
SELECT RIGHT('www.yuanrengu.com',6);
- 1
结果为:gu.com
三.截取特定长度的字符串
用法:
- substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
- substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)
1.从字符串的第9个字符开始读取直至结束
SELECT SUBSTRING('www.yuanrengu.com', 9);
- 1
结果为:rengu.com
2.从字符串的第9个字符开始,只取3个字符
SELECT SUBSTRING('www.yuanrengu.com', 9, 3);
- 1
结果为:ren
3.从字符串的倒数第6个字符开始读取直至结束
SELECT SUBSTRING('www.yuanrengu.com', -6);
- 1
结果为:gu.com
4.从字符串的倒数第6个字符开始读取,只取2个字符
SELECT SUBSTRING('www.yuanrengu.com', -6, 2);
- 1
结果为:gu
四.按关键字进行读取
用法:substringindex(str, delim, count),即:substringindex(被截取字符串,关键字,关键字出现的次数)
1.截取第二个“.”之前的所有字符
SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', 2);
- 1
结果为:www.yuanrengu
2.截取倒数第二个“.”之后的所有字符
SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', -2);
- 1
结果为:yuanrengu.com
3.如果关键字不存在,则返回整个字符串
SELECT SUBSTRING_INDEX('www.yuanrengu.com', 'sprite', 1);
- 1
结果为:www.yuanrengu.com
示例1:实现CAST()函数以将值转换为DATE数据类型。
SELECT CAST("2019-11-21" AS DATE);
输出:
2019-11-21
示例2:实现CAST()函数以将值转换为CHAR数据类型。
SELECT CAST(121 AS CHAR);
输出:
121
示例3:实现CAST()函数以将值转换为SIGNED数据类型。
SELECT CAST(2-4 AS SIGNED);
输出:
-2
示例4:实现CAST()函数以将值转换为UNSIGNED数据类型。
SELECT CAST(2-4 AS UNSIGNED);
输出:
18446744073709551614