MySQL的函数

来源:互联网 发布:c 解java base64 编辑:程序博客网 时间:2024/05/14 20:21

字符串函数

CHAR_LENGTH(str),计算字符串str的字符个数
CONCAT(s1, s2, …) ,拼接s1, s2, …
CONCAT_WS(x, s1, s2, …) ,使用分隔符x将s1, s2, …拼接起来
INSERT(s1, x, len, s2) ,返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符
LOWER(str),大写字母转为小写
LCASE(str),大写字母转为小写
UPPER(str) ,小写字母转为大写
UCASE(str) ,小写字母转为大写
LEFT(s, n) ,返回字符串s左边n个字符组成的子串
RIGHT(s, n) ,返回字符串s右边n个字符组成的子串
LPAD(s1, len, s2) ,返回字符串s1,其左边被字符串s2填补至len字符长度
RPAD(s1, len, s2) ,返回字符串s1,其右边被字符串s2填补至len字符长度
LTRIM(s), 删除字符串s左端的空格
RTRIM(s) ,删除字符串s右端的空格
TRIM(s), 删除字符串s两端的空格
TRIM(s1 FROM s) ,删除字符串s中两端所有的字串s1,未指定s1时默认为空格
REPEEAT(s, n) ,返回n个字符串s拼接成的字符串
SPACE(n) ,返回一个由n个空格组成的字符串
REPLACE(s, s1, s2) ,使用字符串s2替换s中所有的s1
STRCMP(s1, s2) ,字符串比较
SUBSTRING(s, n, len) ,返回字符串s中从n开始长度为len的子串

MID(s, n, len) ,返回字符串s中从n开始长度为len的子串
LOCATE(str1, str) ,返回str1在字符串str中的位置
POSITION(str1 IN str) ,返回str1在字符串str中的位置
INSTR(str, str1) ,返回str1在字符串str中的位置
REVERSE(s) ,返回反转后的字符串
ELT(n, s1, s2, …) ,返回s1, s2, …中第n个字符串
FIELD(s, s1, s2, …) ,返回字符串s在s1, s2, …中所在的位置
FIND_IN_SET(s1, s2) ,返回字符串s1在字符串列表s2中的位置
MAKE_SET(x, s1, s2, …) ,返回由x的二进制数指定的相应位的字符串组成的字符串

数值函数

ABS(X) ,返回X的绝对值
SQRT(X) ,返回X的平方根
MOD(X, Y) ,返回X被Y除后的余数
CEIL(X) ,返回不小于X的最小整数值
CEILING(X) ,返回不小于X的最小整数值
FLOOR(X), 返回不大于X的最大整数值
RAND() ,产生随机数
RAND(X) ,产生随机数,若X参数相同,多次执行,产生的随机数相同
ROUND(X) ,返回对X进行四舍五入操作后的整数值
ROUND(X, Y) ,对X进行四舍五入操作,其值保留到小数点后Y位,若Y为负,则保留到小数点左边Y位
SIGN(X) ,返回X的符号,负则返回-1,零则返回0,正则返回1
truncate(X,Y),返回数字X截断为Y为小数的结果,若Y为0,则截掉小数部分,若Y为负,X小数点左边|y|位置0

日期和时间函数

CURDATE() ,返回当前日期
CURTIME() ,返回当前时间

SYSDATE() ,返回当前日期和时间组合
NOW() ,返回当前日期和时间
CURTENT_TIMESTAMP(),返回当前日期和时间
UNIX_TIMESTAMP() ,将日期转换为时间戳
FORM_UNIXTIME(),将时间戳转换为日期格式

DAYOFYEAR,返回一年中的第几天

DAYOFMONTH,返回一月中的第几天

DAYOFWEEK,返回一星期中的第几天

WEEK(),返回一年中的第几周

MONTH(date) ,返回date对应的月份
YEAR() ,返回日期的年份
DATE_FORMATE(date,fmt),返回按字符串fmt格式化日期的date值
DATE_ADD(date,interval expr type),返回一个日期或时间值加上一个时间间隔的时间值

DATE_SUB(date,INTERVAL expr type),函数从日期减去指定的时间间隔
DATEDIFF(expr,expr2),返回起始时间expr和结束时间expr2之间的天数
MySQL获取当天的零点

select date_format(curdate(),'%Y-%m-%d  %H-%i-%s');

获取当天的十二点

select date_add(curdate(),interval 12 hour);

获取昨天的零点

select date_add(date_sub(curdate(),interval -1 day),interval 0 hour);

获取每月第一天的零点

SELECT DATE_ADD( DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL 0 HOUR);

获取每周的第一天

SELECT CURDATE(), DATE_ADD(CURDATE(),INTERVAL -WEEKDAY(CURDATE()) DAY);

流程函数

IF(expr, v1, v2) ,如果表达式expr是TRUE,返回v1;否则返回v2
IFNULL(v1, v2) ,如果v1不为NULL,返回v1;否则返回v2

CASE [expr] WHEN v1 THEN [r1].....ELSE[d1] END ,如果expr等于v1,返回r1,否则返回d1

CASE WHEN [v1] THEN [r1]......ELSE[d1] END ,如果v1是真,返回r1,否则返回d1

其他函数

DATABASE(),返回当前数据库名

VERSION(),返回当前数据库版本

USER(),返回当前登录用户名

PASSWORD(str) ,加密函数
MD5(str) ,计算字符串的MD5 128比特校验和
ENCODE(str, pswd_str) ,加密函数
DECODE(crypt_str, pswd_str) ,解密函数
FORMAT(x, n) ,将数值x保留小数点后n位,结果以字符串形式返回
CONV(n, from_basem, to_base) ,将数值n,从一种进制转化为另一种进制
INET_ATON(expr) ,将字符串网络地址转化为整型
INET_NTOA(expr) ,将数值网络地址转化为字符串网络地址


0 0
原创粉丝点击