Mysql 的字符串转整形实践指南(mysql字符串转整形)
MySQL是开源数据库。它是用来保存和管理数据的枢纽,当一个程序需要对保存的数据进行字符串操作的时候,就需要MySQL支持的SQL语言相关函数来实现。本文档将介绍MySQL字符串转整形的实践指南,并有示例代码展示。
字符串转整形操作可以使用MySQL的CAST和CONVERT函数实现,CAST函数用来强制传入的字符串转换成整形:
SELECT CAST('123' as UNSIGNED INTEGER);// 返回123
CAST函数不仅能转换字符串,还能将其他类型转换成整形,例如`FLOAT`、`DECIMAL`等:
SELECT CAST(123.456 as UNSIGNED INTEGER); //返回123
CONVERT函数与CAST函数的用法差不多,只是它的范围略有不同,可以将更多类型转换为整形:
SELECT CONVERT('1' USING ASCII); // 返回49
CONVERT函数也支持在字符串转整形的过程中,将字符串的字符集转换为另一种字符集,比如在ISO-8859-1转换为UTF-8时:
SELECT CONVERT(' example ' USING ISO-8859-1); //返回 example
MySQL中,使用`STR_TO_DATE()`函数可以将字符串转换成 `DATE` 类型:
SELECT STR_TO_DATE('2017-07-05', '%Y-%m-%d'); //返回 '2017-07-05'
当执行`STR_TO_DATE()`函数时,如果字符串和所设定格式不匹配,则会返回`NULL`,这时应该使用MySQL的异常处理语句处理:
BEGIN DECLARE v_str VARCHAR(20);
DECLARE v_date DATE;
SET v_str = '2017-07 05';
SET v_date = STR_TO_DATE(v_str, '%Y-%m-%d');
IF v_date IS NULL THEN
name_error('format is not right');
ELSE
SELECT v_date;
END IF;
END
// 抛出异常: format is not right
总结:MySQL的`CAST`和`CONVERT`函数可以对字符串进行整形转换,加入处理异常函数可以有效检测到字符串是否和预期不符,这样可以在操作数据库类型时增加安全性。另外,使用`STR_TO_DATE()`函数可以将字符串转换成MySQL `DATE` 类型,可以有效的保存 `DATE`类型的数据。