一、日期和时间函数

1、获取当前日期的函数

都一样,用法不同

CURDATE() :用于获取系统当前日期

CURRENT_DATE() 用于系统获取当前日期

mysql> select CURDATE(),CURRENT_DATE();

2、获取当前时间的函数

CURTIME() :用于获取系统当前时间

mysql> select CURTIME();

3、获取当前日期和时间的函数

CURRENT_TIMESTAMP() :用于获取系统当前日期和时间

LOCALTIME() :用于获取系统当前日期和时间

NOW() :用于获取系统当前日期和时间

SYSDATE(): 用于获取系统当前日期和时间

mysql> select CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();

4、获取时间戳的函数

UNIX_TIMESTAMP() 用于获取 UNIX 格式的时间戳

mysql> select UNIX_TIMESTAMP();

时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。

5、转换时间戳的函数

FROM_UNIXTIME() 用于将 UNIX 格式的时间戳转换为普通格式的时 间

mysql> select FROM_UNIXTIME(1587693176); # 添加之前查出的时间戳

6、获取 UTC 日期的函数

UTC_DATE() :用于获取当前 UTC (世界标准时间) 日期值

mysql> select UTC_DATE();

7、获取 UTC 时间的函数

UTC_TIME() 用于获取当前 UTC (世界标准时间) 时间值

mysql> select UTC_TIME();

8、获取月份的函数

MONTH(date) :用于返回 date 对应的月份

MONTHNAME(date): 用于返回 date 对应月份的英文全名

mysql> select MONTH('2020-4-24'),MONTHNAME('2020-4-24');

9、获取星期的函数

DAYNAME(date) :用于返回 date 对应的工作日的英文名称

DAYOFWEEK(date) :用于返回 date 对应的一周中的索引,1 表示周日,2 表示周一,...... ,7 表示周六

WEEKDAY(date): 用于返回日期对应的工作日索引,0 表示周一,1 表示周二,...... ,6 表示周日

WEEK(date): 用于计算 date 是一年中的第几周,一年有 53 周

WEEKOFYEAR(date) :用于计算日期 date 是一年中的第几周,一年有 53 周

mysql> select DAYNAME('2020-4-24'),DAYOFWEEK('2020-4-24'),WEEKDAY('2020-4-24'),WEEK('2020-4-24'),WEEKOFYEAR('2020-4-24');

10、获取天数的函数

DAYOFYEAR(date) :用于返回 date 是一年中的 第几天,一年有 365 天

DAYOFMONTH(date): 用于计算 date 是一个月中的第几天

mysql> select DAYOFYEAR('2020-4-24'),DAYOFMONTH('2020-4-24');

11、获取年份的函数

YEAR(date) :返回 date 对应的年份

mysql> select YEAR('20-04-24'),YEAR('98-04-24');

12、获取季度的函数

QUARTER(date) :返回 date 对应的一年中的季度值

mysql> select QUARTER('20-04-24');

13、获取分钟的函数

MINUTE(time) 返回 time 对应的分钟值

mysql> select MINUTE('20-04-24 10:18:00');

14、获取秒钟的函数

SECOND(time) 返回 time 对应的秒数

mysql> select SECOND('10:18:22');

15、获取日期的指定值的函数

EXTRACT(type FROM date) 用于获取指定的日期值

mysql> select EXTRACT(YEAR FROM '2020-04-24') AS col1, # 当type为YEAR 时,只返回年值

-> EXTRACT(YEAR_MONTH FROM '2020-04-24 10:18:22') AS col2, # 当type为 YEAR_MONTH时,返回年与月

-> EXTRACT(DAY_MINUTE FROM '2020-04-24 10:18:22') AS col3; # 当type为 DAY_MINUTE时,返回日、小时、分钟

16、时间和秒钟转换的函数

TIME_TO_SEC(time) :用于将 time 转换 为秒钟,公式为 " 小时3600 + 分钟60 + 秒 "

SEC_TO_TIME(time): 用于将秒值转换为时间格式

mysql> select TIME_TO_SEC('23:23:00'),SEC_TO_TIME('84180');

17、计算日期和时间的函数

DATE_ADD() :用于对日期进行加运算,格式为 DATE_ADD(date, INTERVAL expr type)

DATE_SUB(): 用于对日期进行减运算,格式为 DATE_SUB(date, INTERVAL expr type)

SUBDATE(): 用于对日期进行减运算,格式为 SUBDATE(date, INTERVAL expr type)

ADDTIME() :用于对日期进行加运算,格式为 ADDTIME(date, expr)

SUBTIME() :用于对日期进行减运算,格式为 SUBTIME(date, expr)

DATE_DIFF() :用于计算两个日期之间的间隔天数

mysql> select DATE_ADD('2020-12-31 23:59:59', INTERVAL 1 SECOND); # 对指定的日期 增加1秒

mysql> select DATE_ADD('2020-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND); # 对指定的日期增加1分1秒

mysql> select DATE_SUB('2020-01-01', INTERVAL 31 DAY); # 给指定的日期减去31天

mysql> select SUBDATE('2020-01-01', INTERVAL 31 DAY);

mysql> select ADDTIME('2020-12-31 23:59:59', '1:1:1'); # 给指定的日期增加1时1分1 秒

mysql> select SUBTIME('2020-12-31 23:59:59', '1:1:1'); # 给指定的日期减去1时1分1 秒

mysql> select DATEDIFF('2020-06-01', '2020-04-24');

18、将日期和时间格式化的函数

DATE_FORMAT(date, format) 用于格式化日期,即根据 format 指定的格式 显示 date 值

TIME_FORMAT(time, format) 用于格式化时间,即根据 format 指定的格式显示 time 值

GET_FORMAT() ,我们指定值类型和格式化类型,然后会显示成格式字符串

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');

mysql> select TIME_FORMAT('16:00:00', '%H %k %I');

mysql> select DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA'));

%d该月日期,数字形式(00..31)

%e该月日期,数字形式(0..31)

%f微秒(000000...999999)

%H以2位数表 示24小时(00..23)

%h,%I 以2位数表示12小时(01..12)

%i分钟,数字形式(00-59)

%j一年中的天数(001366)

%k以24小时(0-23)

%l以12小时(0..12)

%M月份名称(january..December)

%m月份数字形式 (00..12)

%p上午(AM)或下午(PM)

%r时间,12小时制(小时hh:分钟mm:秒钟ss后面加AM或PM)

%S,%s以2位数形式表示秒(00..59)

%T时间,24小时制(小时hh:分钟mm:秒数ss)

%U周(00..53),其 中周日为每周的第一天

%u周(00..53),其中周一为每周的第一天

%V周(01..53),其中周日为每周的第一 天,和%X一起使用

%v周(01..53),其中周一为每周的第一天,和%x一起使用

%W工作日名称(周日..周六)

%w一周中的每日(0=周日..6=周六)

%X该周的年份,其中周日为每周的第一天;数字形式4位数,和%V同时 使用

%x该周的年份,其中周一为每周的第一天;数字形式4位数,和%v同时使用

%Y4位数形式表示年份

%y2 位数形式表示年份

%% “%”文字字符

二、条件判断函数

IF() IF(expr, v1, v2) 如果表达式 expr 为 TRUE ,则返回值为 v1 ,否则返回 v2

mysql> select IF(1>2,2,3);

可以看到一并不大于二所以返回v2,也就是3

IFNULL() IFNULL(v1, v2) ,如果 v1 不为 NULL ,则返回值为 v1 ;如果 v1 为 NULL ,则返回值为 v2

mysql> select IFNULL(1,2),IFNULL(NULL,10);

CASE 语法:CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END 含义:如果 expr 等于某个 vn ,则返回对应位置 THEN 后面的结果,如果与所有值都不相等,则返回 ELSE 后面的 rn

mysql> select CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

三、系统信息函数

1、获取 MySQL 版本号的函数

VERSION() 用于获取 MySQL 版本号

mysql> select VERSION();

2、查看当前用户的连接数的ID函数

CONNECTION_ID() 用于查看当前用户的连接数

mysql> select CONNECTION_ID();

mysql> show PROCESSLIST; # 查看当前用户的连接信息

上图标签含义如下:

Id :用户登录 MySQL 时,系统分配的连接 id

User :当前连接的用户

Host :显示这个语句是从哪个 IP 的哪个端口上发出的,可以用来追踪出现问题语句的用户

db :显示这个进程目前连接的是哪个数据库

Command :显示当前连接执行的命令,一般取值为休眠(Sleep)、查询(Query)、连接(Connect)

Time :显示这个状态持续的时间,单位是秒

State :显示使用当前连接的 SQL 语句的状态

Info :显示这个 SQL 语句

3、查看当前使用的数据库的函数

DATABASE() :用于查看当前使用的数据库

SCHEMA(): 用于查看当前使用的数据库

mysql> select database(),SCHEMA();

4、查看当前登录的用户名的函数

USER() :返回当前登录的用户 及主机名

CURRENT_USER(): 用于返回当前登录的用户及主机名

SYSTEM_USER() :用于返回当前登录的用户及主机名

mysql> select USER(),CURRENT_USER(),SYSTEM_USER();

5、查看指定字符串的字符集的函数

CHARSET(str) 用于查看字符串 str 的字符集

mysql> select CHARSET('abc');

6、查看指定字符串的排列方式的函数

COLLATION(str): 用于查看字符串 str 的字符排列方式

mysql> select COLLATION('abc');

7、获取后一个自动生成的 ID 值得函数

LAST_INSERT_ID() :用于获取后一个自动生成的 ID 值

#先创建一个表,其id字段带有 AUTO_INCREMENT约束

mysql> create table tab1(

-> id int auto_increment primary key,

-> name varchar(30)

-> );

mysql> insert into tab1 values (NULL,'zhangsan'); #插入一条数据,这时id没有指定, 则自动生成,id为1

mysql> insert into tab1 values (NULL,'lisi'); # 插入一条数据,这时id没有指定, 则自动生成,id为2

mysql> select * from tab1; # 查看表的信息

+----+----------+

| id | name |

+----+----------+

| 1 | zhangsan |

| 2 | lisi |

+----+----------+

mysql> select LAST_INSERT_ID();

mysql> insert into tab1 values (NULL,'aaa'),(NULL,'bbb'),(NULL,'ccc');

mysql> select * from tab1; # 如果我们一次性插入多条数据,虽然 id到了5

+----+----------+

| id | name |

+----+----------+

| 1 | zhangsan |

| 2 | lisi |

| 3 | aaa |

| 4 | bbb |

| 5 | ccc |

+----+----------+

mysql> select LAST_INSERT_ID(); # 但我们用LAST_INSERT_ID()查看时 却为3 ,这是因为LAST_INSERT_ID()只返回插入的 第一行数据时产生值

+------------------+

| LAST_INSERT_ID() |

+------------------+

| 3 |

+------------------+

四、加/解密函数

1、加密函数

PASSWORD(str) :从明文密码 str 计算并返 回加密后的密码字符串,当参数为 NULL 时,返回 NULL

MD5(str) 为字符串 str 算出一个 MD5 128 比特校验和

ENCODE(str, pswd_str) 使用 pswd_str 作为密码,加密 str

mysql> select PASSWORD('newpwd');

mysql> select MD5('newpwd');

mysql> select ENCODE('secret','123.com');

2、解密函数

DECODE(crypt_str, pswd_str) 使用 pswd_str 作为密码,解密加密字 符串 crypt_str

mysql> select DECODE(ENCODE('secret','cry'),'cry');

五、其他函数

1、格式化函数

FORMAT(x, n) :将数字 x 格式化,并以四舍五入的方式保留小数点后 n 位,结果 以字符串的形式返回

mysql> select FORMAT(1.23456, 4), FORMAT(1.2, 4), FORMAT(1.234, 0);

2、不同进制的数字进行转换的函数

CONV() :用于不同进制数之间的转换

mysql> select CONV('a',16,2), # 将16进制的a转换为2进制

-> CONV(15,10,2), # 将10进制的15转换为2进制

-> CONV(15,10,8), # 将10进制的15转换为8进制

-> CONV(15,10,16); # 将10进制的15转换为16进制

3、 IP 地址与数字互相转换的函数

INET_ATON(expr) :用于将网络地址转 换为一个代表该地址数值的整数

mysql> select INET_ATON('192.168.1.1');

4、加锁函数和解锁函数

GET_LOCK(str, timeout) :使用字符串 str 来得到一个锁,持续时间 timeout 秒

若成功得到锁,则返回 1

若操作超时,则返回 0

若发生错误,则返回 NULL

mysql> select GET_LOCK('lock1',10); # 返回结果为1,说明成功得到了一个名称为'lock1'的锁,持续时间为 10秒

RELEASE_LOCAK(str) :用于解开被 GET_LOCK() 获取的,用字符串 str 所命名的锁

若锁被解开,则返回 1

若该线程尚未创建锁,则返回 0

若命名的锁不存在,则返回 NULL

若该锁从未被 GET_LOCK() 的调用获取,或锁已经被提前解开,则该锁不存在

mysql> select RELEASE_LOCK('lock1'); # 返回值为1说明解锁成功

IS_FREE_LOCK(str): 检查名为 str 的锁是否可以使用

若锁可以使用,则返回 1

若锁正在被使用,则返回 0

若出现错误,则返回 NULL

mysql> select IS_FREE_LOCK('lock1');

IS_USED_LOCK(str) :用于检查名为 str 的锁是否正在被使用,若被封锁,则返回使用该锁的客户端的连接标识 符,否则返回 NULL

mysql> select IS_USED_LOCK('lock1');

5、重复执行指定操作的函数

BENCHMARK(count, expr): 用于重复 count 次执行表 达式 expr

可以用于计算 MySQL 处理表达式的速度

可以在 MySQL 客户端内部报告语句执行的时间

mysql> select PASSWORD('newpwd'); # # 执行1次加密操作花费了0.00秒

mysql> select BENCHMARK( 500000, PASSWORD('newpwd') );

+-----------------------------------------+

| BENCHMARK( 500000, PASSWORD('newpwd') ) |

+-----------------------------------------+

| 0 |

+-----------------------------------------+

1 row in set, 1 warning (0.06 sec) # 执行500000次加密操作花费了0.06秒

6、改变字符集的函数

CONVERT(... USING ...) 用于改变字符串的默认字符集

mysql> select CHARSET('abc'); # 默认是utf8

+----------------+

| CHARSET('abc') |

+----------------+

| utf8 |

+----------------+

mysql> select CHARSET(CONVERT('abc' USING latin1)); # 转换成latin1字符集

+--------------------------------------+

| CHARSET(CONVERT('abc' USING latin1)) |

+--------------------------------------+

| latin1 |

+--------------------------------------+

7、改变数据类型的函数

CAST(x, AS type) :用于将一个数据类型的值转换 为另一个数据类型的值

CONVERT(x, type) :用于将一个数据类型的值转换为另一个数据类型的值

mysql> select CAST(100 AS CHAR(2)); # 将整数类型100转换为带有两个显示宽度的字符串类 型,结果为'10'

mysql> select CONVERT(100,CHAR(2)); # 将整数类型的100转换为带有两个显示宽度的字符 串类型,结果为'10'

mysql数据库季度函数_数据库之MySQL函数(二)相关推荐

  1. mysql独有的函数_数据库之MySQL函数(一)

    一.数学函数 1.绝对值函数 ABS(x) :返回 x 的绝对值 mysql> select ABS(2),ABS(-2.3),ABS(-22); 返回的结果如下: 数学学得好的大佬应该知道(本 ...

  2. mysql数据库查询要注意事项_三种mysql高级查询技巧_数据库_mysql函数_课课家

    大家都知道GROUP BY,但是大家知道GROUP BY后面可以带哪些函数吗?今天给大家介绍下GROUP BY后面可以带的函数. 1GROUP_CONCAT 在MySQL中,你可以获取表达式组合的连接 ...

  3. mysql数据库支持的函数_数据库MySQL--常见函数

    函数:将一组逻辑语句封装在函数体中,对外暴露函数名 调用:select 函数名() from 表:(若用到表中的字段则家上'from 表') 函数分类:   1.单行函数(例:concate.leng ...

  4. mysql水果表查询_最全MySQL数据库表的查询操作

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  5. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  6. mysql数据库基本语法_[数据库]MySQL 基本语法

    [数据库]MySQL 基本语法 0 2018-05-31 05:00:07 1.说明: 创建默认数据库 create database 库名; 2.说明: 创建指定字符编码的数据库 create da ...

  7. mysql id命名规范_数据库设计规范之命名规范

    命名规范 说明:指数据库对象如表(TABLE).序列(SEQUENCE).过程(PROCEDURE).触发器(TRIGGER)等的命名约定. 1. 基本命名原则 (1)规则1:命名使用具有意义的英文词 ...

  8. mysql amp amp 符_数据库 转义字符

    有关PHP.HTML单引号.双引号转义以及转成HTML实体的那些事! 一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: ...

  9. 向mysql数据库发送指令_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  10. 【MySQL 第10章_数据库的设计规范】

    第10章_数据库的设计规范 1. 为什么需要数据库设计 2.范式 2.1范式简介 2.2范式都包括哪些 2.3 键和相关属性的概念 2.4第一范式(1st NF) 2.5 第二范式(2nd NF) 2 ...

最新文章

  1. Yolov5总结文档(理论、代码、实验结果)
  2. Codeforces Round #650 (Div. 3)(A-C)
  3. jdbc连接数据库的步骤(转载)
  4. 第4章——存储器、存储管理和高速缓存技术
  5. 两个整形变量的值进行交换
  6. Firebird 问题总结
  7. 串口之COMMTIMEOUTS结构体
  8. Java Swing 如何让界面更加美观
  9. Pandavan LED Document
  10. 【人工智能】NIPS2019 | 2019NIPS论文 | NeurIPS2019最新更新论文~持续更新| NIPS2019百度云下载
  11. vnc repeater linux,远程桌面中转,基于 UltraVNC Repeater(中继器)的远程桌面服务搭建,用于复杂网络环境...
  12. ES5 to ESNext —  自 2015 以来 JavaScript 新增的所有新特性
  13. 分享48个Go源码,总有一款适合您
  14. 【论文分享】Relation-Aware Graph Attention Network for Visual Question Answering
  15. python画蜡烛致敬烈士_Matplotlib 蜡烛图教程
  16. 第三方支付“快钱”的经营策略
  17. 热血物语怎么过关,怎么通关,为什么无法通关
  18. XLD学习(Halcon)
  19. 贸易相关术语[A-C]
  20. 页面中常用的html元素,HTML网页的基本标签 最常用的HTML标签

热门文章

  1. Kotlin习惯用语和编码风格[转自Kotlin中文文档]
  2. 给大家分享10个值得关注的C语言开源项目
  3. 不符合C语言语法常量,C语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合C语言语法的表达式?...
  4. java运行库下载_Java运行库下载-jdk1.7 64位下载1.8.0.20 官方最新版-东坡下载
  5. 【软件测试】测试用例详解
  6. 山东大学项目实训开发日志——基于vue+springboot的医院耗材管理系统(二)
  7. SQL解析处理和扩展开发工具 Java
  8. 小区物业管理系统--数据库应用开发
  9. Mp3原理及文件格式解析(from)
  10. 使用Hex2Bin软件将Hex文件转Bin文件