MySQL知识(六)——时间日期函数、系统信息函数
来源:互联网 发布:f2移动数据不能上网 编辑:程序博客网 时间:2024/06/06 16:38
3 时间和日期函数
3.1 获取当前日期和获取当前时间
(1)CURDATE()和CURRENT_DATE(),将当前日期按照‘YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
mysql> select curdate(),current_date(),curdate()+0;+------------+----------------+-------------+| curdate() | current_date() | curdate()+0 |+------------+----------------+-------------+| 2016-02-20 | 2016-02-20 | 20160220 |+------------+----------------+-------------+1 row in set
(2)CURTIME()和CURRENT_TIME(),将当前时间以‘HH:MM:SS’或HHMMSS的格式返回。
mysql> select curtime(),current_time(),curtime()+0;+-----------+----------------+-------------+| curtime() | current_time() | curtime()+0 |+-----------+----------------+-------------+| 11:25:56 | 11:25:56 | 112556 |+-----------+----------------+-------------+1 row in set
3.2 同时获取当前日期时间
NOW()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE(),均返回当前日期和时间值,格式为‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS。
mysql> select current_timestamp(),localtime(),now(),sysdate();+---------------------+---------------------+---------------------+---------------------+| current_timestamp() | localtime() | now() | sysdate() |+---------------------+---------------------+---------------------+---------------------+| 2016-02-20 11:28:41 | 2016-02-20 11:28:41 | 2016-02-20 11:28:41 | 2016-02-20 11:28:41 |+---------------------+---------------------+---------------------+---------------------+1 row in set
3.3 计算日期和时间函数
(1)DATE_ADD(date,INTERVAL expr type)或者ADDDATE(date,INTERVAL expr type),执行日期的运算
(2)DATE_SUB(date,INTERVAL expr type)或者SUBDATE(date,INTERVAL expr type),执行日期的运算
(3)ADDTIME(date,expr):将expr值添加到date;SUBTIME(date,expr):date减去expr值。
(4)DATEDIFF(date1,date2):返回起始时间date1和结束时间date2之间的天数。
3.4 将日期和时间格式化的函数
DATE_FORMAT(date,format):根据format指定的格式显示date值。主要的format格式如下表:
例子:
mysql> select date_format(now(),'%W %M %Y') as col1, -> date_format(now(),'%D %y %a %d %m %b %j') as col2, -> date_format(now(),'%H:%i:%s') as col3, -> date_format('2016-02-20','%X %V')as col4;+------------------------+---------------------------+----------+---------+| col1 | col2 | col3 | col4 |+------------------------+---------------------------+----------+---------+| Saturday February 2016 | 20th 16 Sat 20 02 Feb 051 | 13:10:39 | 2016 07 |+------------------------+---------------------------+----------+---------+1 row in set
3.5 其他日期时间函数
(1)获取月份的函数MONTH(date)和MONTHNAME(date)
(2)获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
(3)获取星期数的函数WEEK(d)和WEEKOFYEAR(d)
(4)获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
(5)获取年份YEAR(date)、季度QUARTER(date)、分钟MINUTE(time)和秒钟SECOND(time)
(6)时间和秒钟转换:TIME_TO_SEC(time)和SEC_TO_TIME(seconds)
4 系统信息函数
4.1 获取版本号、连接数、数据库名
(1)VERSION(),返回指示MySQL服务器版本的字符串,这个字符串使用utf8字符集。
mysql> SELECT VERSION();+-----------+| VERSION() |+-----------+| 5.6.24 |+-----------+1 row in set
(2)DATABASE()和SCHEMA(),返回使用utf8字符集的默认(当前)数据库名。
mysql> SELECT DATABASE(),SCHEMA();+------------+----------+| DATABASE() | SCHEMA() |+------------+----------+| test | test |+------------+----------+1 row in set
(3)CONNECTION_ID(),返回MySQL服务器当前连接的次数,每个连接都有各自唯一的ID。
mysql> SELECT CONNECTION_ID();+-----------------+| CONNECTION_ID() |+-----------------+| 11 |+-----------------+1 row in set
(4)SHOW PROCESSLIST; SHOW FULL PROCESSLIST;
processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出有问题的查询语句等。
如果是root账号,能看到所有用户的当前连接。如果是普通用户,则只能看到自己占用的连接。show processlist;只列出前100条,如果想全部列出可使用show full processlist命令。
mysql> SHOW PROCESSLIST;+----+------+-----------------+------+---------+-------+-------+------------------+| Id | User | Host | db | Command | Time | State | Info |+----+------+-----------------+------+---------+-------+-------+------------------+| 9 | root | localhost:14493 | NULL | Sleep | 11492 | | NULL || 10 | root | localhost:14494 | test | Sleep | 11491 | | NULL || 11 | root | localhost:14495 | test | Query | 0 | init | SHOW PROCESSLIST |+----+------+-----------------+------+---------+-------+-------+------------------+3 rows in set
各个列的含义和用途:
(1)Id列:用户登录MySQL时,系统分配的“connection id”;
(2)User列:显示当前用户,如果不是root,这个命令就只显示用户权限范围内的sql语句。
(3)Host列:显示这个语句是从哪个ip的哪个端口上发出的,可以用来追踪出现问题语句的用户。
(4)db列:显示这个进程目前连接的是哪个数据库。
(5)Command列:显示当前连接的执行的命令,一般取值为休眠(Sleep),查询(Query),连接(Connect)。
(6)Time列:显示这个状态持续的时间,单位是秒。
(7)State列:显示使用当前连接的sql语句的状态,很重要的列,后续会有所有状态的描述,State只是语句执行中的某一个状态。一个sql语句,以查询为例,可能需要经过Copying to tmp table,Sorting result,Sending data等状态才可以完成。
(8)Info列:显示这个sql语句,是判断问题语句的一个重要依据。
4.2 获取用户名函数
USER()、CURRENT_USER()、CURRENT_USER、SYSTEM_USER()、SESSION_USER()这个几个函数返回当前被MySQL服务器验证的用户名和主机名组合。一般情况下,这几个函数的返回值是相同的。
mysql> SELECT USER(),CURRENT_USER(),CURRENT_USER,SYSTEM_USER();+----------------+----------------+----------------+----------------+| USER() | CURRENT_USER() | CURRENT_USER | SYSTEM_USER() |+----------------+----------------+----------------+----------------+| root@localhost | root@localhost | root@localhost | root@localhost |+----------------+----------------+----------------+----------------+1 row in set
4.3 获取最后一个自动生成的ID值的函数
LAST_INSERT_ID()自动返回最后一个INSERT或UPDATE为AUTO_INCREMENT列设置的第一个发生的值。
(1)一次插入一条记录
mysql> create table stu(id int auto_increment primary key,name varchar(20));Query OK, 0 rows affectedmysql> insert into stu(name) values('jtzen9');Query OK, 1 row affectedmysql> insert into stu(name) values('heiheihei');Query OK, 1 row affectedmysql> select * from stu;+----+-----------+| id | name |+----+-----------+| 1 | jtzen9 || 2 | heiheihei |+----+-----------+2 rows in setmysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+| 2 |+------------------+1 row in set
(2)一次插入多条记录
mysql> insert into stu(name) values('John'),('Nick'),('Mike');Query OK, 3 rows affectedRecords: 3 Duplicates: 0 Warnings: 0mysql> select * from stu;+----+-----------+| id | name |+----+-----------+| 1 | jtzen9 || 2 | heiheihei || 3 | John || 4 | Nick || 5 | Mike |+----+-----------+5 rows in setmysql> SELECT LAST_INSERT_ID();+------------------+| LAST_INSERT_ID() |+------------------+| 3 |+------------------+1 row in set
LAST_INSERT_ID()只返回插入的第一行数据时产生的值,在这里为第3条记录,因为这使依靠其他服务器复制同样的INSERT语句变得简单。
LAST_INSERT_ID是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id值。
- MySQL知识(六)——时间日期函数、系统信息函数
- mysql系统函数3----日期时间函数
- Mysql函数总结(3)——日期时间函数
- MySQL——日期和时间函数
- 《MySQL入门很简单》学习笔记(13)之第13章MySQL函数(关键词:数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数、锁函数)
- oracle学习(六)--时间日期函数
- mysql日期时间函数
- mysql时间、日期函数
- mysql日期时间函数
- MySql 时间日期函数
- Mysql日期时间函数
- MySQL日期时间函数
- MySQL 日期时间函数
- mysql日期时间函数
- mysql 时间日期函数
- MySql 日期时间函数
- MySQL日期时间函数
- Mysql 日期,时间函数
- 【每日算法】堆排序&优先队列
- MFC的RTTI
- PHP之创建对象的基本形式
- 【hdu 2896】病毒侵袭 题解&代码(C++)
- pixhawk自学笔记之从串口获取光流数据
- MySQL知识(六)——时间日期函数、系统信息函数
- Visual Studio 2015下OpenCV 3.1 配置
- rac初识
- jsp的继续学习
- 简述 Microservices(微服务)
- 【Android】安卓学习笔记之ListView的简单用法
- app登录注册方案
- 关于Spring的AOP的学习随记,心情
- MySQL_PDO访问.php