MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
一、常见字符串函数:
- 1、CHAR_LENGTH 获取长度(字符为单位)
- 2、FORMAT 格式化
- 3、INSERT 替换的方式插入
- 4、INSTR 获取位置
- 5、LEFT/RIGHT 取左、取右
- 6、LENGTH 获取长度(字节为单位)
- 7、LTRIM/RTRIM/TRIM 去空格(左/右/自定义)
- 8、STRCMP 字符串比较
- 9、CONCAT 字符串拼接
- 10、SUBSTRING 字符串截取
1、CHAR_LENGTH:获取长度(字符为单位)
CHAR_LENGTH(str)
解释:返回值为字符串str的长度,计算的单位为字符(一个中文也算一个字符)
举例:

如果是查询已知表格里的字段长度,可以这样写:

2、FORMAT:
FORMAT(X,D)
解释:将数字X的格式写为'#,###,###.##',以四舍五入的方式保留小数点后D位,并将结果以字符串的形式返回。若D为0, 则返回结果不带有小数点,或不含小数部分。
举例:

3、INSERT:替换的方式插入
INSERT (str,pos,len,newstr)
解释:返回字符串str,从原str的pos位置开始,用字符串newstr来替换,替换的长度为len。
如果pos超过字符串长度,则返回值为原始字符串。假如len的长度超过后面字符串的长度,则从位置pos开始替换到字符串的结尾即可。
四个参数中若任何一个参数为的值为null,则整个函数的返回值为NULL。
举例:将smyh001替换为smyh002

4、INSTR:查找子字符串的位置
INSTR(str,substr)
解释:返回字符串str中首次出现子字符串substr的位置。
举例:



5、LEFT/RIGHT:字符串截取
- 左截取:
LEFT(str,len)
解释:返回字符串str中,从左边开始算起的,前len个字符。
- 右截取:
RIGHT(str,len)
解释:返回字符串str中,从右边开始算起的,前len个字符。
6、LENGTH:求字符串长度(以字节为单位)
LENGTH(str)
解释:返回值为字符串str的长度,单位为字节。一个多字节字符算作多字节。这意味着对于一个包含五个2字节字符的字符串,LENGTH()的返回值为10,而CHAR_LENGTH()的返回值则为5。
注:
- GBK 编码中,一个中文字符是2个字节。
- UTF-8编码中,一个中文字符是3个字节,一个英文字符是2个字节。
7、LTRIM/RTRIM/TRIM 去空格(左/右/自定义):
- 去掉左边的空格:
LTRIM(str)
解释:返回字符串str,其引导空格字符被删除。
- 去掉中间的空格:
RTRIM(str)
解释:返回字符串str,其结尾空格字符被删除。
- 自定义去空格:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
注:大括号和中括号里面的参数为可选项,如果全部都加上的话,默认为参数both。
解释:将原字符串str去掉空格返回。只去开头(leading)的空格,只去结尾(trailng)的空格,或者同时去掉(both)开头和结尾的空格都行。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH。
TRIM([remstr FROM] str)
解释:remstr关键字的作用是去掉指定字符。 即所有包含remstr的前缀和/或后缀将被删除。未指定情况下,即删除空格。
官方文档的举例:

8、STRCMP:判断字符串是否相等
STRCMP(expr1,expr2)
解释:判断两个字符串是否相等。若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其它情况返回1。功能和比较器类似。
注:字符串的大小是按照ANSI编码来比较的。
举例:

9、CONCAT:字符串拼接
CONCAT(str1,str2,...)
解释:返回结果为连将str1、str2···拼接之后产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。括号里可能有一个或多个参数。
如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任意一个二进制字符串,则结果为一个二进制字符串。一个数字参数将自动转化为与之相等的二进制字符串格式。
若要避免这种情况二进制的情况出现,可使用显式类型 cast(str),将二进制的字符串转换为非二进制字符串。例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col)
举例:(navicat编辑器会自动将二进制字符串转换为非二进制字符串)

10、SUBSTRING:字符串截取
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
解释:不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。
使用FROM的格式为标准SQL语法。
也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos字符(也就是说,pos为正时,从左边算起;pos为负时,从右边算起)。
官方文档举例如下:

二、常见日期时间函数:
- 1、DAYOFWEEK、 DAYOFYEAR、DAYOFMONTH
- 2、WEEKDAY
- 3、YEAR、QUARTER、MONTH、
- 4、HOUR、MINUTE、SECOND
- 5、TO DAYS、FROM DAYS
- 6、CURDATE、CURTIME、NOW 获取当前时间
1、DAYOFWEEK、 DAYOFYEAR、DAYOFMONTH
- 求星期几:(一周中的第几天)
DAYOFWEEK(date)
解释:返回date(1=周日,2=周一, ...,7=周六)对应的工作日索引。即:date对应的范围是1至7。
- 求一年中的某天是第几天:(一年中的第几天)
DAYOFYEAR(date)
返回date对应的一年中的天数,范围是从1到366。
- 求一个月中的某天是第几天:(一个月的第几天)
DAYOFMONTH(date)
返回date对应的该月日期,范围是从1到31。注:DAY(date) 和DAYOFMONTH(date)的含义相同。
举例:




2、WEEKDAY:
- 求星期几:(一周的第几天)
WEEKDAY(date)
解释:返回date(0 = 周一, 1 = 周二, ... 6 = 周日)对应的工作日索引。即:date对应的范围是0至6。
注:DAYOFWEEK(date)和WEEKDAY(date)的功能相同,唯一的区别在于date对应的取值范围。
3、 YEAR、QUARTER、MONTH
- 求年份:
YEAR(date)
解释:返回date对应的年份,范围是从1000到9999。
- 求季度:
QUARTER(date)
解释:返回date对应的一年中的季度值,范围是从1到4。
- 求月份:(该月是一年当中的第几个月)
MONTH(date)
解释:返回date 对应的月份,范围是从1到12。
举例:


4、HOUR、MINUTE、SECOND
- 求小时:
HOUR(time)
解释:返回time 对应的小时数。对于日时值的返回值范围是从0到23 。
- 求分钟:
MINUTE(time)
解释:返回time对应的分钟数,范围是从0到59。
- 求秒数:
SECOND(time)
解释:返回time对应的秒数,范围是从0到59。
举例:



5、TO_DAYS、FROM_DAYS
- 求某日期,一共经历了多少天:(历史长河中)
TO_DAYS(date)
解释:给定一个日期date, 返回一个天数 (从年份0开始的天数 )。
- 求历史长河中的第某天,的日期:
FROM_DAYS(N)
解释:给定一个天数 N, 返回一个DATE值。
使用FROM_DAYS()处理古老日期时,务必谨慎,他不用于处理阳历出现前的天数(1582)。
6、CURDATE、CURTIME、NOW
- 求当前的年月日:
CURDATE()
解释:将当前日期按照'YYYY-MM-DD'或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
举例:

- 求当前的时分秒:
CURTIME()
解释:将当前时间以'HH:MM:SS'或HHMMSS的格式返回,具体格式根据函数用在字符串或是数字语境中而定。
举例:

- 求当前的年月日、时分秒:
NOW()
举例:

注:如果now是放在语句当中,要看具体字段的格式要求。比如说,如果是放在date字段中,则只显示年月日;如果是放在datetime字段中,则同时显示年月日和时分秒。
MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数的更多相关文章
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MYSQL数据库学习笔记1
MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- Mysql学习笔记(五)数学与日期时间函数
学习内容: 1.数学函数 2.日期时间函数 这些函数都是很常用的函数...在这里进行简单的介绍... 数学函数: mysql); //取绝对值函数 这个函数可安全地使用于 BIGINT 值. mysq ...
- ORACLE 常用函数 日期/时间函数
---------------------------------------------日期/时间函数----------------------------------------------- ...
- MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- css中的定位和框模型问题
和定位有关的元素属性如下 position 元素的定位类型 绝对定位会相对于最近定位的祖先元素的位置来定位,而不会影响其他框的位置 固定定位 相对定位 z-index 元素的堆叠顺序 值越大 ...
- .NET AES加解密(128位)
AES加密(128位): /// <summary> /// 有密码的AES加密 /// </summary> internal static string Encrypt(s ...
- XPM转换与查看工具
X PixMap (XPM)是一种基于ASCII编码的图像格式,在X Window系统中的应用十分广泛.她最初由位于法国Sophia Antipolis的Bull研究中心的Daniel Dardail ...
- Javascript面向对象编程(二)--- 构造函数的继承
这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例 今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个"动 ...
- [ javascript html Dom image 对象事件加载方式 ] 对象事件加载方式
<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...
- android assets文件夹资源的访问
1.assets文件夹里面的文件都是保持原始的文件格式 . 2.assets中的文件只可以读取而不能进行写的操作. 3.assets目录下的资源文件不会在R.java自动生成ID,所以读取assets ...
- 关于Eclipse 和 IDEA 导入library库文件 的步骤
这里我们以PullToRefresh(上拉刷新下拉加载)组件的library为例 下载地址: https://github.com/chrisbanes/Android-PullToRefresh 现 ...
- OC--代理模式
一,代理设计模式的场合: 当对象A发生了一些行为,想告知对象B (让对象B成为对象A的代理对象) 对象B想监听对象A的一些行为 (让对象B成为对象A的代理对象) 当对象A无法处理某些行为的时候,想让对 ...
- Android常用设计模式(一)
java有23中设计模式,Android中也用到了很多的设计模式,本篇就来介绍Android中常用的几种设计模式 一.普通工厂设计模式 普通工厂设计模式,就是创建一个工厂类负责创建对象 ,用户根据需求 ...
- WPF + Caliburn.Micro +ActionMessage事件绑定
ActionMessage事件绑定是个人觉的算是CM的精髓了,比如说我在View里面放个button,我们要在他的click事件里面写东西,怎么写.如果是WPF我们直接在CS里面写就可以.但是CM不行 ...