网站首页 > 技术文章 正文
工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。
遇到问题:
这是数据库中的一个字段,现在想将起其中的日期和星期分开,并重命名为其他变量。
解决思路:因为该字段的内容格式是****/(*)*/(*)* ***的,所以首先想到的是用substr函数去分割这个字段。详细的substr函数用法见如下:
substr(string string, int a, int b)
参数1:string 要处理的字符串 参数2:a 截取字符串的开始位置 参数3:截取字符串的长度(而不是字符串的结束位置)
首先直接用substr函数来分割数据进行测试代码如:
,得到的结果如:
,可见并不能得到我想要的结果,原因我猜是因为数据存储格式的原因导致(不保证猜测的准确性),于是再进行切割之前先先做一步处理,将该字段先转换为字符串类型的数据,并转换成统一格式,再进行提取,并观察结果。 代码和结果如下:
、
。可见,这个步骤已经可以将我所需要的日期这个字段进行了分割,并且成功取出。
在取星期的时候思路如下:找到字符串中的空格位置,从空格开始的位置+1后取三个字符串,那么其中就到用到instr函数的一些知识。如下:
instr( string1, string2, start_position,nth_appearance )
string1:源字符串 string2:在string1中需要查找的字符串 start_position:如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引 nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错
将substr和instr两个函数结合起来,可以看出取星期的函数理论上是这个样子的:substr(accepttime,instr(accepttime," ",1,1)+1,3)。这样其实就可以按照我们任何想要的形式分割数据了。
但是在我的问题中用上述的函数是没有办法将日期分割出来,因为数据的格式是这个样子的
,
,所以我又取查找类似格式的数据怎么进行分割,最后查询的结果是这样的:
,然后一想,日期是不是可以用同样的方法呢?然而真的可以。。。 所以我最终的代码是这样的:
,结果是这样的:
。
虽然走了很多弯路,用了不恰当的方法,但是最后还是解决了问题,虽然没有用到但也算是学习了substr和instr的用法,希望这篇随笔可以帮助到大家,哪怕知识一点点~~!
猜你喜欢
- 2024-09-14 Mysql:替换某个字段中的部分字符串——replace函数
- 2024-09-14 oracle函数--INSTR、SUBSTR使用说明和实例讲解
- 2024-09-14 详解Oracle使用substr和instr截取字符串指定位置的字符
- 2024-09-14 mysql 替换某一个字段中的字符串(mysql替换一个字符串的字符函数为)
- 2024-09-14 sql注入总结(sql注入示例)
- 2024-09-14 Mybatis 中的 DAO 接口和 XML 文件里的 SQL他们如何建立关系?
- 2024-09-14 SQL Server - 字符串常用操作(sqlserver 字符类型)
- 2024-09-14 如何在Java中比较字符串?(如何在java中比较字符串个数)
- 2024-09-14 SQL截取函数(substr)与字符串查找函数(Instr)的组合应用
- 2024-09-14 PHP 字符串变量(php字符串型数据的定义方式)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 504℃MySQL service启动脚本浅析(r12笔记第59天)
- 482℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 480℃启用MySQL查询缓存(mysql8.0查询缓存)
- 460℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 440℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 438℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)