目录
获取当前日期(curdate()函数和current_date())
获取当前时间(curtime()函数和current_time())
计算日期t1与t2之间相隔的天数(datediff(t1,t2))
数学
1、获取绝对值(abs)
abs(x)函数用于求绝对值。
2、获取小于等于X的最大值(floor(x))
floor(x)函数返回小于或等于x的最大整数。
3、获取随机数(rand())
rand()函数是返回0~1的随机数
4、设置保留几位数
四舍五入(round(x))
round(x)函数对x四舍五入,round(x,y)返回x保留到y位,截断时进行四舍五入处理。
直接截断,不四舍五入(truncate(x,y))
truncate(x,y)函数返回x保留到小数点后y位的值。
日期和时间函数
获取当前
获取当前日期和时间(now())
now()函数可以获取当前日期和时间。
获取当前日期( curdate()函数和current_date())
curdate()函数和current_date()函数都可以获取当前日期。
获取当前时间(curtime()函数和current_time())
时间计算
计算日期t1与t2之间相隔的天数( datediff(t1,t2))
datediff(t1,t2)函数用于计算日期t1与t2之间相隔的天数。
返回t日期加上n天后的日期
adddate(expr,days)函数返回expr日期加上days天的日期。
ADDDATE(date,INTERVAL expr unit) INTERVAL表示关键字,expr表示数量,unit表示单位
date_add(date,INTERVAL expr unit) 同ADDDATE
返回t日期减去n天的日期
SUBDATE(expr,days)函数返回expr日期减去days天的日期。
subdate(date,INTERVAL expr unit) INTERVAL表示关键字,expr表示数量,unit表示单位
date_sub(date,INTERVAL expr unit) 同subdate
其他
时间格式转换
DATE_FORMAT(date,format):日期格式转换
下表说明了可用于构建日期格式字符串的说明符及其含义
限定符 | 含义 |
---|---|
%a |
三个字符缩写的工作日名称,例如:Mon , Tue , Wed,等 |
%b |
三个字符缩写的月份名称,例如:Jan ,Feb ,Mar等 |
%c |
以数字表示的月份值,例如:1, 2, 3...12 |
%D |
英文后缀如:0th , 1st , 2nd等的一个月之中的第几天 |
%d |
如果是1 个数字(小于10 ),那么一个月之中的第几天表示为加前导加0 , 如:00, 01,02, ...31 |
%e |
没有前导零的月份的日子,例如:1,2,... 31 |
%f |
微秒,范围在000000..999999 |
%H |
24小时格式的小时,前导加0 ,例如:00,01...23 |
%h |
小时,12小时格式,带前导零,例如:01,02 ... 12 |
%I |
与%h 相同 |
%i |
分数为零,例如:00,01,... 59 |
%j |
一年中的的第几天,前导为0 ,例如,001,002,... 366 |
%k |
24小时格式的小时,无前导零,例如:0,1,2 ... 23 |
%l |
12小时格式的小时,无前导零,例如:0,1,2 ... 12 |
%M |
月份全名称,例如:January, February,...December |
%m |
具有前导零的月份名称,例如:00,01,02,... 12 |
%p |
AM 或PM ,取决于其他时间说明符 |
%r |
表示时间,12 小时格式hh:mm:ss AM 或PM |
%S |
表示秒,前导零,如:00,01,... 59 |
%s |
与%S 相同 |
%T |
表示时间,24小时格式hh:mm:ss |
%U |
周的第一天是星期日,例如:00,01,02 ... 53时,前导零的周数 |
%u |
周的第一天是星期一,例如:00,01,02 ... 53时,前导零的周数 |
%V |
与%U 相同,它与%X 一起使用 |
%v |
与%u 相同,它与%x 一起使用 |
%W |
工作日的全称,例如:Sunday, Monday,..., Saturday |
%w |
工作日,以数字来表示(0 = 星期日,1 = 星期一等) |
%X |
周的四位数表示年份,第一天是星期日; 经常与%V 一起使用 |
%x |
周的四位数表示年份,第一天是星期日; 经常与%v 一起使用 |
%Y |
表示年份,四位数,例如2000,2001,...等。 |
%y |
表示年份,两位数,例如00,01,...等。 |
%% |
将百分比(% )字符添加到输出 |
以下是一些常用的日期格式字符串:
DATE_FORMAT字符串 | 格式化日期 |
---|---|
%Y-%m-%d |
2017-4-30 |
%e/%c/%Y |
4/7/2013 |
%c/%e/%Y |
7/4/2013 |
%d/%m/%Y |
4/7/2013 |
%m/%d/%Y |
7/4/2013 |
%e/%c/%Y %H:%i |
4/7/2013 11:20 |
%c/%e/%Y %H:%i |
7/4/2013 11:20 |
%d/%m/%Y %H:%i |
4/7/2013 11:20 |
%m/%d/%Y %H:%i |
7/4/2013 11:20 |
%e/%c/%Y %T |
4/7/2013 11:20 |
%c/%e/%Y %T |
7/4/2013 11:20 |
%d/%m/%Y %T |
4/7/2013 11:20 |
%m/%d/%Y %T |
7/4/2013 11:20 |
%a %D %b %Y |
Thu 4th Jul 2013 |
%a %D %b %Y %H:%i |
Thu 4th Jul 2013 11:20 |
%a %D %b %Y %T |
Thu 4th Jul 2013 11:20:05 |
%a %b %e %Y |
Thu Jul 4 2013 |
%a %b %e %Y %H:%i |
Thu Jul 4 2013 11:20 |
%a %b %e %Y %T |
Thu Jul 4 2013 11:20:05 |
%W %D %M %Y |
Thursday 4th July 2013 |
%W %D %M %Y %H:%i |
Thursday 4th July 2013 11:20 |
%W %D %M %Y %T |
Thursday 4th July 2013 11:20:05 |
%l:%i %p %b %e, %Y |
7/4/2013 11:20 |
%M %e, %Y |
4-Jul-13 |
%a, %d %b %Y %T |
Thu, 04 Jul 2013 11:20:05 |
返回时间的年、月、日
YEAR(date1)、MONTH(date1) 、DAY(date1):返回年、月、日
返回当月的最后一天
LAST_DAY(date1):返回当月的最后一天 。
字符串函数
转换
Lcase(str):将字符串str的所有字母变成小写字母
Ucase(str):将字符串str的所有字母变成大写字母
计算长度
Length(str):计算str的长度
获取位置
Locate(substr,str):返回子串substr在字符串中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;
POSITION(substr IN str):返回子串substr在字符串str中第一次出现的位置,如果字符substr在字符串中不存在,与locate函数作用一样。
接连不同字符串
1、group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符']) 这个函数必须和group by语句一起使用,将goup by产生的一个分组中的值连接起来,返回一个字符串结果
2、CONCAT_WS('分隔符',str1,str2) 第一个参数为分隔符,相比于concat函数可以一次性指定分隔符
3、CONCAT(str1,str2,...) :将多个字符串连接成一个字符串
去除空格
Rtrim():去除字符串右端空格
Ltrim():去除字符串左端空格
Trim():去除字符串两端空格
截取
1、Right(s,n):返回字符串s的后n个字符
2、Left(s,n):返回字符串s的前n个字符
3、substring(s,n,len):返回从字符串s的n位置截取的长度为len的子字符串
4、Replace(s,s1,s2):替换函数,用s2替换s中的s1
逻辑条件函数
(1)if(n,v1,v2):如果表达式n成立,则执行v1;否则执行v2。
(2)ifnull(v1,v2):如果v1不为空,则显示v1的值;否则显示v2的值。
(3)case when n1 then x1 [when n2 then x2...else xn] end
case表示函数开始,end表示函数结束。如果表达式n1成立,则返回x1的值;如果表达式n2成立,则返回x2的值。以此类推,最后遇到else时,返回xn的值。
系统信息函数
select version():获取数据库的版本号。
select connection_id():获取服务器的连接数。
select database():获取当前数据库名。
select user():获取当前用户。
参考: