字符串函数
concat(str1,str2...) 任何字符串与null链接都是null
insert(str,start,end,'99') 类似js的splice方法 (select INSERT('abcdef',3,1,'999') =》ab999def)
LOWER(str)和UPPER(str)
LEFT(str,x)和RIGHT(str,x) 分别返回字符串左边的x个字符和最右边的x个字符(如果第二个参数为null,那么不返回任何字符)
LAPD(str,n,pad)和RPAD(str,n,pad) 用字符串pad对str最左边或最右边进行填充,直接到长度为n个字符串长度
LTRIM(str)和RTRIM(str)去左空格 、去右空格
trim(str) 去掉字符串左右的空格
repeat(str,x) 返回str重复x次的结果
replace('ABCDEF','C','') =》ABCDEF
substr('abcdf',3,2) =>'df' 截取值
select *,concat(province,city,area) as address from user;
select *,insert(idCard,14,18,'****') as address from user;
UPDATE user set name=concat(name,'连接') WHERE id=4
UPDATE user set name=replace(name,'连接','') WHERE id=4
数值函数
ABS(x) 返回x的绝对值
ceil(x) 向上取整
floor(x) 向下取整
MOD(x,y) 返回x/y的模 (余数)
RAND() 返回0-1的随机值
日期和时间函数
CURDATE() 返回当前日期,'2019-05-24'
CURTIME() 返回当前时间,15:37:36
NOW() 返回当前日期和时间,2019-05-24 15:36:58
UNIX_TIMESTAMP() 返回当前时间的时间戳 1558683519
FROM_UNIXTIME(1558683519) 将时间戳转换成日期 2019-05-24 15:36:58
WEEK(date) 返回当前是一年的第几周
YEAR(date) 放回所给日期是哪一年
HOUR(time) 放回所给日期的小时
MINUTE(time) 放回所给日期的分钟
DATE_FORMAT(now(),'M,D,Y') 格式化时间
DATEDIFF(date1,date2) 计算两个日期相差的天数
DATE_ADD (时间,INTERVAT 值 单位) :增加时间 ,减的时候直传负值就行
SELECT DATE_FORMAT(now(),'%Y-%m-%d') //2019-05-24
select DATE_FORMAT(now(),'%M,%D,%Y') //January,31st,2019
select DATE_FORMAT(now(),'%Y-%M-%D')//2019-January-31st
select DATA_ADD(now(),INTERVAT 3 day)
UPDATE user set createdate=DATE_ADD(createdate,INTERVAT 3 day) WHERE id=4
UPDATE user set created_id=DATE_ADD(now(),INTERVAL 10 day) where id=1
date_format( ) 转换格式 :
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(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 使用
%Y 年,4 位
%y 年,2 位
select now();-- 当前日期。
select date_format(now(),'%Y-%m-%d');-- date_format() 转换当前的日期格式
流程函数
if(value,r,f) 如果value(可以是表达式)是真,返回t,否则返回f
IFNULL(value1,value2) 如果value1不为空,返回value1否则返回value2
CASE WHERE THEN END
select case when 2>3 then '对' else '错' end;
其他常用函数
DATEBASE()返回数据库名
VERSION()返回当前数据库版本
USER()
PASSWORD(str)
MD5(str)