MYSQL-常用函数
1.常用的字符串函数
CONCAT(s1,s2,...,sn) 连接s1,s2,..,sn为一个字符串
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最右边进行填充,直到长度为n个字符长度
LTRIM(str)去掉字符串str左侧的空格
RTRIM(str)去掉字符串str行尾的空格
REPEAT(str,x)返回str重复x次的结果
REPLACE(str,a,b)用字符串b替换字符串str中所有出现的a
STRCMP(s1,s2)比较字符串s1,s2
TRIM(str)去掉字符串行尾和行头的空格
SUBSTRING(str,x,y) 返回字符串str从x位置起y个字符长度的字符串
新增加一个字符串函数,用于字符串的截取
ABS(x) 返回x的绝对值
CEIL(x) 返回大于x的最小整数值
FLOOR(x)返回小于x的最大整数值
MOD(x,y)返回x/y的模
RAND()返回0-1内的随机值
产生0-100内任意随机整数,ceil(100*rand())
ROUND(x,y)返回参数x的四舍五入的有y为小数的值
TRUNCATE(x,y)返回数字x截断为y为小数的结果
3.日期和时间函数
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
UNIX_TIMESTAMP(date)返回当前的日期和时间
FROM_UNIXTIME 返回UNIX时间戳和日期值
WEEK(date)返回日期date为一年中的第几周
YEAR(date)返回日期date的年份
HOUR(time)返回time的小时值
MINUTE(time)返回time的分钟数
MONTHNAME(date)返回date的月份名
DATE_FORMAT(date,fmt)返回按字符串fmt格式化日期date值
DATE_ADD(date,INTERVAL expr type)返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2)返回起始时间expr和结束时间expr2间的天数
DATE_ADD(date,INTERVAL expr type)函数:返回与所给日期date相差INTERVAl时间段的日期
其中INTERVAL是间隔类型关键字,expr是一个表达式,这个表达式对应后面的类型,type是间隔类型。MYSQL提供了13种间隔类型
HOUR 小时 hh
MINUTE 分钟 mm
SECOND 秒 ss
YEAR 年 YY
MONTH 月 MM
DAY 日 DD
YEAR_MONTH 年和月 YY-MM
DAY_HOUR 日和小时 DD hh
DAY_MINUTE 日和分钟 DD hh:mm
DAY_SECOND 日和秒 DD hh:mm:ss
HOUR_MINUTE 小时和分 hh:mm
HOUR_SECOND 小时和秒 hh:ss
MINUTE_SCOND 分钟和秒 mm:ss
4.流程函数
IF(value,t,f) 如果value是真,返回t,否则返回f
iFNULL(value1,value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN [value1] THEN [result1]...ELSE[default] END
CASE [expr] WHEN [vale1] THEN [result1]...ELSE[default] END
5.其他常用函数
DATEBASE()返回当前数据库名
VERSION()返回当前数据库版本
USER()返回当前登录的用户名
INET_ATON(IP) 返回IP地址的数字表示
INET_NTOA(num)返回数字代表的IP地址
RASSWARD(str)返回字符串str的加密版本
MD5()返回字符串str的MD5()值