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的长度,计算的单位为字符(一个中文也算一个字符)
举例:
如果是查询已知表格里的字段长度,可以这样写:
2、FORMAT:
FORMAT(X,D)
解释:将数字X的格式写为'#,###,###.##',以四舍五入的方式保留小数点后D位,并将结果以字符串的形式返回。若D为0, 则返回结果不带有小数点,或不含小数部分。
举例:
3、INSERT:替换的方式插入
(,pos,,newstr)
解释:返回字符串str,从原str的pos位置开始,用字符串newstr来替换,替换的长度为len。
如果pos超过字符串长度,则返回值为原始字符串。假如len的长度超过后面字符串的长度,则从位置pos开始替换到字符串的结尾即可。
四个参数中若任何一个参数为的值为null,则整个函数的返回值为NULL。
举例:将smyh001替换为smyh002
4、INSTR:查找子字符串的位置
INSTR(,substr)
解释:返回字符串str中首次出现子字符串substr的位置。
举例:
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的前缀和/或后缀将被删除。未指定情况下,即删除空格。
官方文档的举例:
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
求年份:
(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字段中,则同时显示年月日和时分秒。
原文地址:https://blog.51cto.com/changjianglinux/1901721
mysql学习笔记--- 字符串函数、日期时间函数的更多相关文章
- MySQL学习笔记八:日期/时间的处理
MySQL日期时间的处理,在其官网文档上都有详细的阐述,想了解更多的同学可自行查阅. 1.查询当前日期时间:函数有now(),localtime(),current_timestamp(),sysda ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- ORACLE 常用函数 日期/时间函数
---------------------------------------------日期/时间函数----------------------------------------------- ...
- MySQL学习笔记_7_MySQL常用内置函数
MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...
- MySQL学习笔记:调用存储过程或函数报1418错误
问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...
- MySQL学习笔记:删除存储过程和函数
删除存储过程.存储函数主要使用drop语句: drop procedure —— 删除存储过程 drop function —— 删除存储函数 语法: DROP {PROCEDURE|FUNCTI ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 日期 & 时间
C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件. 有四 ...
- mysql与oracle的日期/时间函数小结
前言 本文的日期/时间全部格式化为”2016-01-01 01:01:01“形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时间转字符串函数:to ...
随机推荐
- 运用PDO存储将图片、音频文件存入数据库
在数据库中创建表格的时候,有一个字段为image,用来保存图片,那么其类型就是blob,关于blob,百度百科是这样描述的 BLOB (binary large object),二进制大对象,是一个可 ...
- MySQL乐观锁在分布式场景下的实践
背景 在电商购物的场景下,当我们点击购物时,后端服务就会对相应的商品进行减库存操作.在单实例部署的情况,我们可以简单地使用JVM提供的锁机制对减库存操作进行加锁,防止多个用户同时点击购买后导致的库存不 ...
- Android控件第7类——对话框
1.AlertDialog AlertDialog用来生成对话框,功能十分强大. AlertDialog可以分成4个组成部分:标题栏上的图标,标题区,文本区,按钮区. 使用方法: 创建AlertDia ...
- phpStorm字体大小无法调整, 怎么办?
最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个“√”,始终无法去掉,这个勾限制了字体系列,就可怜巴巴的那几个 ...
- 转《js闭包与内存泄漏》
首先,能导致内存泄漏的一定是引用类型的变量,比如函数和其他自定义对象.而值类型的变量是不存在内存泄漏的,比如字符串.数字.布尔值等.因为值类型是靠复制来传递的,而引用类型是靠类似c语言中的指针来传递的 ...
- apache2.4.29安装脚本
#!/bin/bash . /etc/init.d/functions yum install -y expat-devel gcc gcc-c++ zlib-devel openssl-devel ...
- linux运维掌握不熟练命令用法记录
rename :批量修改文件名 [root@Dannyserver test]# ls .txt .txt .txt .txt [root@Dannyserver test]# rename 't ...
- 如何隐藏Win7登录界面的administrator用户名恢复
很多朋友一直在用着第三方的Windows7系统盘来装机,例如下载了Ghost格式的一些装机盘.在这些第三方系统中,很多家都是默认使用administrator 帐户自动登陆的. 从安全的角度来讲,这样 ...
- python之tkinter使用-Grid(网格)布局管理器
# 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...
- fatal error: matio.h: No such file or directory
http://blog.csdn.net/zziahgf/article/details/72900948 $ sudo apt-get install libmatio-dev 或源码安装: # 下 ...