MySQ基础入门系列之——字符与日期数据处理

今天这一篇分享MySQL中的字符串处理工具与日期时间处理,这一部分内容虽然看似不多,但是往往是输出处理中的的痛点。

我的MySQL数据库中已经建好了一个包含两列日期与一列薪资范围字段。(深感通过R或者Python建表然后写入MySQL的效率要比使用MySQL自己的编辑器写方便!)

MySQL中的日期与时间操作涉及到的函数相当多,实际应用需要按照需要和场景来选择该使用哪一类函数,这一篇我只挑选了三类重要的日期与时间函数进行总结。

1、日期格式化:

因为本地文本文件中存储的日期导入数据库,很多情况下是当做文本的,当需要使用日期参与计算的时候需要使用日期格式化函数进行格式转化。

MySQL默认支持的日期格式是YYYY-MM-DD或者YYYY/MM/DD,所以当导进去的日期是此种格式的话,直接使用date函数即可执行。

date()

str_to_date()

当日期/时间格式比较复杂或者与常用的日期结构差异较大时,可以使用str_to_date函数进行原始日期格式的声明

函数中第二个参数的声明方式要严格与输入的日期格式对应。

DATE_FORMAT()

如果你已经得到了一个标准日期格式的字段,想要自定义日期显示的格式,可以使用DATE_FORMAT函数,

FROM_UNIXTIME()

如果你拿到的原始数据是10位数值的时间戳,需要使用这个函数来进行标准时间的转化。

2、日期计算

3、日期元素的输出:

关于日期其中部分元素的输出,除了使用上面那个DATE_FORMAT()函数之外,可以直接使用单个元素函数进行提取。

year

month

day

quarter

weekday

hour

minute

second

第二部分:

字符串格式化函数:

字符串操纵函数:

可以看到CONCAT_WS允许自定义拼接的间隔符,所以实用性更强一些。

substring_index函数运行我们按照特定字符出现的位置进行截取,很多时候可以起到关键作用。

使用substring_index函数处理日期元素输出:

使用substring_index函数处理带有字母的薪资区间字段:

以下还剩余两类字符串处理函数,分别是字符串定位函数,字符串截取函数

locate函数可以给出字符串中某个特定字符串相对于整个字符串长度的精确位置。

left()/right()/mid()函数则可以分别从左侧、右侧或者中间某个特定位置截取固定长度的字符内容。

substring()函数则是根据某个特定字符串位置开始截取固定长度字符内容。

使用locate函数+left()/right()/mid()函数处理薪资上下限问题。

使用substring函数处理薪资上下限问题:

以上便是本篇关于MySQL日期/时间与字符串处理的相关学习笔记与心得总结,分享给大家,希望能够一起学习、一起进步!

欢迎关注数据小魔方qq交流群

本文来自企鹅号 - 数据小魔方媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李成熙heyli

babel到底将代码转换成什么鸟样?

前言 将babel捧作前端一个划时代的工具一定也不为过,它的出现让许多程序员幸福地用上了es6新语法。但你就这么放心地让babel跑在外网?反正我是不放心,我就...

36210
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch——Date Math在索引中的用法详解

在elasticsearch中,有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式。 更多内容参考Elasticsearch翻译汇总 ...

1897
来自专栏小樱的经验随笔

【批处理学习笔记】第二十一课:数值计算

    批处理里面的数值计算功能较弱,只能够进行整型计算,忽略浮点数的小数部分;同时数值计算的范围也受限于系统位数,对于目前较为常见的32位机来说,数值计算能处...

2744
来自专栏数据结构与算法

浅谈ST表

ST表 ST表的功能很简单 它是解决RMQ问题(区间最值问题)的一种强有力的工具 它可以做到O(nlogn)预处理,O(1)查询最值 算法 ST表是利用的是倍增...

2695
来自专栏架构之路

索引优先队列-IndexedPrirotyQueue的原理及实现(源码)

1.索引优先队列的意义 索引优先队列是一个比较抽象的概念,它是一个优先队列,又带有索引,这个索引是用来干什么的呢? 在正常的队列中,我们只能访问队列头元素,整个...

3698
来自专栏后端技术探索

从头到尾解析Hash 表算法

问题描述 百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记...

1034
来自专栏PHP在线

关于php运算符优先级的几道题

今天正好群里有人在问一道php运算符优先级的问题,正好以前也遇到过类似的问题,这里整理一下吧,方便大家理解 以防掉坑:) 先来道简单的: $a = 3; if ...

3316
来自专栏Android知识点总结

看得见的数据结构Android版之表的数组实现(数据结构篇)

631
来自专栏软件开发 -- 分享 互助 成长

C++中关于指针初始化和使用NULL的理解

1、严禁使用未被初始化的指针:C++创建指针的时候,只分配存储地址的内存,并不会分配存储数据的内存,所以指针可能指向任何位置。    (1)使用解除运算符(*)...

20810
来自专栏来自地球男人的部落格

[LeetCode] 80. Remove Duplicates from Sorted Array II

【原题】 Follow up for “Remove Duplicates”: What if duplicates are allowed at ...

2129

扫码关注云+社区