mysql 中截取某个字符串字段,构建字段,类型转换

1.需求:

如下表结构:
在这里插入图片描述

需要统计某年每月份中从1月到当月的累计金额
比如:
2月->50;
3月->50+50 =100;
2月->50+50+23 = 123;

思路:因为如果直接分组,排序累加因为是yyyy年M月格式的字符串,不是yyyy年MM月格式,也不是yyyy-MM格式,导致排序累加无法计算;
在这里插入图片描述

先截取month字段的获取月,将截取的月变成int 类型,就可以分组累加排序了,
sql代码为:
在这里插入图片描述

在这里插入图片描述

或者可以通过补充为yyyy年MM格式的日期

select d.month,d.output_amount,0+SUBSTRING_INDEX(d.month,'年',-1) 去掉年 from  project_output_plan_detail d
where d.main_id = '1659442677806051330'  ORDER BY 去掉年

在这里插入图片描述

mysql字符串字段截取

mysql中字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。

  1. 字符串截取:left(str, length)
    在这里插入图片描述

  2. 字符串截取:substring(str, length)
    2.1 substring(str, length) 从字符串的第 length 个字符位置开始取,直到结束。
    在这里插入图片描述

2.2 substring(str, pos, len) 从字符串的第 length 个字符位置开始取len个字符
在这里插入图片描述
2.3 substring(str, pos, len) pos 可以是负数,从字符串的第 4 个字符位置(倒数)开始取,直到结束。
在这里插入图片描述

  1. 字符串截取:substring_index(str,delim,count) 从开始截取到第count个delim ; count负数时,从倒数截取到第count个delim
    在这里插入图片描述

参考:https://www.cnblogs.com/wjm956/p/7724244.html

构建转化类型

mysql为我们提供了两个类型转换函数:CAST和CONVERT
在这里插入图片描述

例如:
在这里插入图片描述

参考: https://blog.csdn.net/dataijidexiaozi/article/details/103340117

字符串的length()函数

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/rainAndyou/article/details/131114357