MySQL 常用函数

一、序言

本人博客并非教材,只会以自己的方式记一些自己觉得有必要记录的东西,请勿介意。

比如本篇内容,我就觉得简洁的表格比详细的使用示例更好。

二、字符串函数

函数 功能
CONCAT(str1,str2,.....) 字符串连接,连接目标个数不限
INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr  
LOWER(str) 转小写
UPPER(str) 转大写
LEFT(str,x) 返回字符串str最左边的x个字符
RIGHT(str,x) 返回字符串str最右边的x个字符
LPAD(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
RPAD(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符长度
LTRIM(str) 去除字符串str左边的空格
RTRIM(str) 去除字符串str右边的空格
TRIM(str) 去除字符串两边的空格
REPEAT(str,x) 返回str重复x次的结果
REPLACE(str,a,b) 把字符串str中所有的a替换成b
STRCMP(str1,str2) 比较两个字符串,大于为1 小于为-1 等于为0
SUBSTRING(str,x,y) 返回str字符串从x开始y个长度的字符串

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、数值函数

函数 功能
ABS(x) 返回x的绝对值
CEIL(x) 返回大于x的最小整数值
FLOOR(x) 返回小于x的最大整数值
MOD(x,y) 返回x/y的模
RAND() 返回0-1之间的随机数
ROUND(x,y) 返回x的四舍五入保留y位小数的结果
TRUNCATE(x,y) 返回数字x截断为y位小数的结果

 

 

 

 

 

 

 

 

 

 

四、时间日期函数

函数 功能
NOW() 返回当前日期和时间
CURDATE() 返回当前日期
CURTIME() 返回当前时间
UNIX_TIMESTAMP(date) 返回date的时间戳
FROM_UNIXTIME(time) 返回时间戳的date值
WEEK(date) 返回日期date为一年中的第几周
YEAR(date) 返回日期date的年份
HOUR(time) 返回time的小时值
MINUTE(time) 返回time的分钟值
MONTHNAME(date) 返回date的月份名称 英文名
DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
DATEDIFF(expr,expr2) 返回起始时间和结束时间之间的天数

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这个函数 DATE_FORMAT(date,fmt)  其中的fmt 可以使用的格式符如下表

格式符 格式说明
%S和%s 两位数字形式的秒
%i 两位数字形式的分
%H 两位数字形式的小时 24小时制
%h和%I 两位数字形式的小时 12小时制
%T 24小时的时间形式 14:19:41
%d 两位数字表示天
%m 两位数字表示的月份
%Y 四位数字表示的年份
%y 两位数字表示的年份

 

 

 

 

 

 

 

 

 

 

 

-- 格式化当前时间
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
-- 2018-10-25 14:26:01
-- 现在到过年还有多少天
SELECT DATEDIFF('2019-02-05',NOW())
-- 103

五、流程函数

函数 功能
IF(value,a,b) 如果value是真,那么返回a,否则返回b
IFNULL(value1,value2) 如果value1是null,那么返回value2,否则返回value1本身
CASE WHEN [value] THEN [result1] ... ELSE [default_value] END 如果value是真,返回result1,【可以跟上多个WHEN-THEN匹配】否则返回default_value
CASE [value] WHEN [a1] THEN [result1] ... ELSE [default_value] END 匹配value的值,如果等于a1,那么返回result1,也可以跟上多个匹配,否则default_value

 

 

 

 

 

 

 

示例两种case用法:

SELECT CASE 10 WHEN 9 THEN "这是9" WHEN 10 THEN "这是10" ELSE "全错" END
-- 这是10
SELECT CASE WHEN 10>12 THEN "10>12对" WHEN 10>9 THEN "10>9对" ELSE "全错" END 
-- 10>9对

六、其他函数

函数 功能
DATABASE() 返回当前数据库名
VERSION() 返回当前数据库版本
USER() 返回当前登录用户名
INET_ATON(ip) 返回IP地址的数字表示
INET_NTOA(num) 返回数字代表的Ip地址
PASSWORD(str) 返回字符串str的加密版本
MD5(str) 返回字符串的MD5值
posted @ 2018-10-25 15:39  不该相遇在秋天  阅读(1668)  评论(0编辑  收藏  举报