mysql学习笔记(五)--- 字符串函数、日期时间函数
2017-02-27 16:54
639 查看
一、常见字符串函数: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:获取长度(字符为单位)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/c40424f331321a908d285d411c09aef9.png)
如果是查询已知表格里的字段长度,可以这样写:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/29dd3314cccadece3b2d3f9e95917f8d.png)
2、FORMAT:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/37a3a1fe78419e94807f29690236670e.png)
3、INSERT:替换的方式插入
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/2d862560e059b6700e496921894ac18e.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/28191c49b5d517aa1b495ff1b72e9cae.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/ca08b68b39d12747d490be5950d58ffd.png)
![](http://www.cnblogs.com/8bad776f-33b2-4c36-9547-a56699d85008_128_files/537fcb74-25d2-4f34-ba23-e13e72139a13.png)
5、LEFT/RIGHT:字符串截取左截取:
UTF-8编码中,一个中文字符是3个字节,一个英文字符是2个字节。
7、LTRIM/RTRIM/TRIM 去空格(左/右/自定义):去掉左边的空格:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/a5037ef4d1177acb40eded0adb719be3.png)
8、STRCMP:判断字符串是否相等
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/3eb9d3dd2de54e0a9c32583808766e2b.png)
9、CONCAT:字符串拼接
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/b2e1a45d8696928f97ea473c0c0b9abb.png)
10、SUBSTRING:字符串截取
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/df1a854af159ae2adc927160809c14fa.png)
二、常见日期时间函数: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求星期几:(一周中的第几天)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/d0e83d01dd3d103fe59994b2ee054eec.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/79a93945be9b9e1f71cc5aa8a36233b4.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/2435b9bf6605b58dc20c55b40193b40f.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/e59b3b664a84cf90b20bfa4660f4b5dd.png)
2、WEEKDAY:求星期几:(一周的第几天)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/abc56dde7b3ecf88776ce4614ba1fe10.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/191a2dbdbf1e2677dc8c1aaf3ba25e1b.png)
4、HOUR、MINUTE、SECOND求小时:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/a443f4b19c28456ad7f26af2ead13f94.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/12009a531614b7d03ef8058a8a873f61.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/9d1bfe3d58a13aaffbd6a2eb44e09288.png)
5、TO_DAYS、FROM_DAYS求某日期,一共经历了多少天:(历史长河中)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/ce43f1d18b3f94004b6812c55348908e.png)
求当前的时分秒:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/eef72963eefdb557f357539eccf5c7e3.png)
求当前的年月日、时分秒:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/adc2cc67f43ef31f930b10c8e774027f.png)
注:如果now是放在语句当中,要看具体字段的格式要求。比如说,如果是放在date字段中,则只显示年月日;如果是放在datetime字段中,则同时显示年月日和时分秒。
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的长度,计算的单位为字符(一个中文也算一个字符)举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/c40424f331321a908d285d411c09aef9.png)
如果是查询已知表格里的字段长度,可以这样写:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/29dd3314cccadece3b2d3f9e95917f8d.png)
2、FORMAT:
FORMAT(X,D)解释:将数字X的格式写为'#,###,###.##',以四舍五入的方式保留小数点后D位,并将结果以字符串的形式返回。若D为0, 则返回结果不带有小数点,或不含小数部分。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/37a3a1fe78419e94807f29690236670e.png)
3、INSERT:替换的方式插入
(,pos,,newstr)解释:返回字符串str,从原str的pos位置开始,用字符串newstr来替换,替换的长度为len。如果pos超过字符串长度,则返回值为原始字符串。假如len的长度超过后面字符串的长度,则从位置pos开始替换到字符串的结尾即可。四个参数中若任何一个参数为的值为null,则整个函数的返回值为NULL。举例:将smyh001替换为smyh002
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/2d862560e059b6700e496921894ac18e.png)
4、INSTR:查找子字符串的位置
INSTR(,substr)解释:返回字符串str中首次出现子字符串substr的位置。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/28191c49b5d517aa1b495ff1b72e9cae.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/ca08b68b39d12747d490be5950d58ffd.png)
![](http://www.cnblogs.com/8bad776f-33b2-4c36-9547-a56699d85008_128_files/537fcb74-25d2-4f34-ba23-e13e72139a13.png)
5、LEFT/RIGHT:字符串截取左截取:
(,)解释:返回字符串str中,从左边开始算起的,前len个字符。右截取:
(,)解释:返回字符串str中,从右边开始算起的,前len个字符。6、LENGTH:求字符串长度(以字节为单位)
LENGTH()解释:返回值为字符串str的长度,单位为字节。一个多字节字符算作多字节。这意味着对于一个包含五个2字节字符的字符串,LENGTH()的返回值为10,而CHAR_LENGTH()的返回值则为5。注:GBK 编码中,一个中文字符是2个字节。
UTF-8编码中,一个中文字符是3个字节,一个英文字符是2个字节。
7、LTRIM/RTRIM/TRIM 去空格(左/右/自定义):去掉左边的空格:
()解释:返回字符串str,其引导空格字符被删除。去掉中间的空格:
()解释:返回字符串str,其结尾空格字符被删除。自定义去空格:
TRIM( )注:大括号和中括号里面的参数为可选项,如果全部都加上的话,默认为参数both。解释:将原字符串str去掉空格返回。只去开头(leading)的空格,只去结尾(trailng)的空格,或者同时去掉(both)开头和结尾的空格都行。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH。
TRIM( )解释:remstr关键字的作用是去掉指定字符。 即所有包含remstr的前缀和/或后缀将被删除。未指定情况下,即删除空格。官方文档的举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/a5037ef4d1177acb40eded0adb719be3.png)
8、STRCMP:判断字符串是否相等
STRCMP(expr1,expr2)解释:判断两个字符串是否相等。若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其它情况返回1。功能和比较器类似。注:字符串的大小是按照ANSI编码来比较的。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/3eb9d3dd2de54e0a9c32583808766e2b.png)
9、CONCAT:字符串拼接
CONCAT(str1,str2,...)解释:返回结果为连将str1、str2···拼接之后产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。括号里可能有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任意一个二进制字符串,则结果为一个二进制字符串。一个数字参数将自动转化为与之相等的二进制字符串格式。若要避免这种情况二进制的情况出现,可使用显式类型 cast(str),将二进制的字符串转换为非二进制字符串。例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col)举例:(navicat编辑器会自动将二进制字符串转换为非二进制字符串)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/b2e1a45d8696928f97ea473c0c0b9abb.png)
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为负时,从右边算起)。 官方文档举例如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/df1a854af159ae2adc927160809c14fa.png)
二、常见日期时间函数: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)的含义相同。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/d0e83d01dd3d103fe59994b2ee054eec.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/79a93945be9b9e1f71cc5aa8a36233b4.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/2435b9bf6605b58dc20c55b40193b40f.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/e59b3b664a84cf90b20bfa4660f4b5dd.png)
2、WEEKDAY:求星期几:(一周的第几天)
WEEKDAY(date)解释:返回date(0 = 周一, 1 = 周二, ... 6 = 周日)对应的工作日索引。即:date对应的范围是0至6。注:DAYOFWEEK(date)和WEEKDAY(date)的功能相同,唯一的区别在于date对应的取值范围。3、 YEAR、QUARTER、MONTH求年份:
(date)解释:返回date对应的年份,范围是从1000到9999。求季度:
QUARTER(date)解释:返回date对应的一年中的季度值,范围是从1到4。求月份:(该月是一年当中的第几个月)
MONTH(date)解释:返回date 对应的月份,范围是从1到12。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/abc56dde7b3ecf88776ce4614ba1fe10.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/191a2dbdbf1e2677dc8c1aaf3ba25e1b.png)
4、HOUR、MINUTE、SECOND求小时:
HOUR(time)解释:返回time 对应的小时数。对于日时值的返回值范围是从0到23 。求分钟:
MINUTE(time)解释:返回time对应的分钟数,范围是从0到59。求秒数:
SECOND(time)解释:返回time对应的秒数,范围是从0到59。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/a443f4b19c28456ad7f26af2ead13f94.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/12009a531614b7d03ef8058a8a873f61.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/9d1bfe3d58a13aaffbd6a2eb44e09288.png)
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格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/ce43f1d18b3f94004b6812c55348908e.png)
求当前的时分秒:
CURTIME()解释:将当前时间以'HH:MM:SS'或HHMMSS的格式返回,具体格式根据函数用在字符串或是数字语境中而定。举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/eef72963eefdb557f357539eccf5c7e3.png)
求当前的年月日、时分秒:
NOW()举例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201410/adc2cc67f43ef31f930b10c8e774027f.png)
注:如果now是放在语句当中,要看具体字段的格式要求。比如说,如果是放在date字段中,则只显示年月日;如果是放在datetime字段中,则同时显示年月日和时分秒。
相关文章推荐
- Mysql学习笔记(五)数学与日期时间函数
- MySQL学习笔记13:字符串函数
- Mysql学习笔记(四)字符串函数
- Mysql学习笔记(五)数学与日期时间函数
- MySQL学习笔记13:字符串函数
- MYSQL学习笔记(五)之常用的字符串函数
- MySQL学习笔记:InnoDB和MyISAM的差别
- MYSQL学习笔记(1)
- Mysql学习笔记
- mysql学习笔记(二) ----维护
- MYSQL学习笔记(5)配置:使用选项文件
- MYSQL的select 学习笔记
- PHP学习笔记(4)----Mysql用户密码的修改[原创]
- mysql学习笔记
- MySQL学习笔记(较全面的)
- mysql学习笔记
- Mysql学习笔记(1)
- MYSQL的select 学习笔记
- PHP学习笔记(2)----Mysql与PHP的整合[原创]
- MySQL学习笔记