mysql之数据处理

1 字符串处理

1.1、字符串数据处理/提取/分离

SELECT f.Enterprise_Name,
SUBSTR(f.Enterprise_Name,1,LOCATE("(",Enterprise_Name)-1 ) chineseName,
SUBSTR(f.Enterprise_Name,LOCATE("(",Enterprise_Name)+1, LOCATE(")",Enterprise_Name)-LOCATE("(",Enterprise_Name)-1) englishName
FROM `fortune`  f limit 10;

处理结果如下图:

使用到两个字符串处理函数:

1.1.1、substr(str,start,len)函数:

str为输入字符串,从start位置开始截取字符串,len表示要截取的长度; 没有指定len长度:表示从start开始起,截取到字符串末尾。指定了len长度:表示从start开始起,截取len个长度。

1.1.2、locate(str1,str2)函数:

返回字符串substr中第一次出现子字符串的位置

1.2 根据身份证号计算年龄/判断性别

select  name,id_code,timestampdiff(year, substring(id_code, 7, 8), now()) as age , 
(date_format(now(),'%y')- date_format(substring(id_code, 7, 8),'%y'))age1,
case when  mod(substr(id_code,17,1),2)=0 then '女'
when mod(substr(id_code,17,1),2)=1 then '男' else '' end as gender
from  student;

处理结果如下图:

计算年龄使用2种方式,计算结果有差异,请根据具体场景使用:

  1.2.1  timestampdiff()函数:

用于计算两个日期/时间之间的差异,语法:TIMESTAMPDIFF(unit, datetime1, datetime2)

  1.2.2  date_format()函数:

日期格式化函数,语法:DATE_FORMAT(date,format);

判断性别方法:

一、15位身份证号码:第15位代表性别,奇数为男,偶数为女。
二、18位身份证号码:第17位代表性别,奇数为男,偶数为女。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值