Mysql 各种函数



数学函数

-- 返回X绝对值
SELECT ABS(-9);

SELECT PI();

-- 返回X平方根 负数不能开平方根,返回null
SELECT SQRT(-4);

-- 返回X被Y除后的余数
SELECT MOD(5,2);

-- 返回不小于X的最小整数值
SELECT CEIL(3.44),CEILING(3.44);

-- 返回不大于X的最大整数值
SELECT FLOOR(3.56);

-- 产生随机数 格式如:0.886545069410042,0.0039664851538524825
SELECT RAND();

-- 产生随机数,若X相同,多次执行,产生的随机数相同 0.40613597483014313
SELECT RAND(5);

-- 返回X四舍五入的整数值
SELECT ROUND(4.4);

-- 返回对X进行四舍五入,其值保留到小数点后Y位,若Y为负,则保留小数点左边Y位 4.556
SELECT ROUND(4.55555,3);

-- 返回X的符号,负数返回-1,零返回0,整数返回1
SELECT SIGN(-9);

-- 返回X的Y次幂
SELECT POW(2,3),POWER(3,2);

-- 返回e的X次幂 2.718281828459045
SELECT EXP(1);

-- 返回X的自然对数
SELECT LOG(1);

-- 返回X的基数为10的对数
SELECT LOG10(100);

-- 角度转化为弧度 PI()
SELECT RADIANS(180);

-- 弧度转化为角度 180度
SELECT DEGREES(PI());

-- 三角函数
SELECT SIN(0);
/*ASIN(X);
COS(X);
ACOS(X)
TAN(X)正切
ATAN(X)
COT(X) 余切 */

-- TRUNCATE(X,Y)返回X被截掉小数点后Y位的数字,若Y为0,截掉小数部分,若Y为负,X小数点左边|Y|位置
SELECT TRUNCATE(1.21,1);
SELECT TRUNCATE(1.21,0);
SELECT TRUNCATE(31.21,-1);

字符串函数

-- 计算字符串的字符个数
SELECT CHAR_LENGTH("abd");

-- 拼接 s1,s2,s3....
SELECT CONCAT("ere","22",'333');

-- 使用分隔符separator将s1,s2,.....拼接起来 erex22x333
SELECT CONCAT_WS("x","ere","22",'333');

-- INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于X位置和被字符串s2取代的len字符 12def
SELECT INSERT("abcdef",1,3,12);

-- 大写字母转为小写
SELECT LOWER("DFSFfd");
SELECT LCASE("DFSFfd");

-- 小写字母转为大写
SELECT UPPER("sfjslfj");
SELECT UCASE("sdffsddf");

-- 返回字符串s左边n个字符组成的子串 abcdef
SELECT LEFT("abcdefg",6);

-- 返回字符串s左边n个字符组成的子串 bcdefg
SELECT RIGHT("abcdefg",6);

-- LPAD(s1,len,s2)返回字符串s1,其左边被字符串s2填补至len字符长度,如果s1的长度大于len,则返回值被缩短至len个字符 
SELECT LPAD("123456",7,"aa");-- a123456
SELECT LPAD("123456",3,"aa");-- 123

-- RPAD(s1,len,s2)返回字符串s1,其右边被字符串s2填补至len字符长度,如果s1的长度大于len,则返回值被缩短至len个字符 
SELECT RPAD("123456",7,"aa");-- 123456a
SELECT RPAD("123456",3,"aa");-- 123

-- 删除字符串s左端的空格
SELECT LTRIM(" sssf ");

-- 删除字符串s右端的空格
SELECT RTRIM(" sssf ");

-- 删除字符串s两端的空格
SELECT TRIM(" sssf ");

-- TRIM(s1 FROM s);删除字符串s两端所有字串s1,未指定s1时默认为空格
SELECT TRIM("ee" FROM "sree");-- sr
SELECT TRIM(" " FROM "  sree ");

-- REPEAT(str,count)返回count个字符串str拼接成的字符串
SELECT REPEAT("s2",4);-- s2s2s2s2

-- 返回一个由n个空格组成的字符串
SELECT SPACE(10);

-- REPLACE(str,from_str,to_str)使用字符串to_str替换str中所有的from_str
SELECT REPLACE("00ert00","ert","111");

-- 字符串比较
SELECT STRCMP("ssdssx","ssdsss");
/*
当s1<s2时,返回为负数;
当s1==s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A"<"B" "a">"A" "computer">"compare" */

-- 返回字符串s中从n开始长度为len的子串
SELECT SUBSTRING("Sdfjgkl",3,5);
SELECT MID("Sdfjgkl",3,5);

-- LOCATE(str1,str)返回str1在字符串str中的位置
SELECT LOCATE("str","sfstrs");
SELECT POSITION("str" IN "sfstrs");
SELECT INSTR("sfstrs","str");

-- 返回反转后的字符串
SELECT REVERSE("sfghhhfsfsdf");

-- 返回s1,s2,...中第n个字符串
SELECT ELT(2,"dfgdfdf","ertete","shjyjy");

-- 返回字符串s在s1,s2,...中所在的位置。如果str没有找到,则返回0。
SELECT FIELD("strs","strs","sfdsstrs","sfdsdstrs");

日期和时间函数

-- 当前日期
SELECT CURDATE();
SELECT CURRENT_DATE();

-- 当前时间
SELECT CURTIME();
SELECT CURRENT_TIME();

-- 当前日期和时间的组合
SELECT CURRENT_TIMESTAMP();
SELECT LOCALTIME();
SELECT NOW();
SELECT SYSDATE();

-- 返回Unix 时间戳,1970年之后的秒数
SELECT UNIX_TIMESTAMP();

-- 把unix时间戳转换为普通格式
SELECT FROM_UNIXTIME("1510041844");

-- 返回当前UTC日期值(世界标准时间)
SELECT UTC_DATE();

-- 返回当前UTC时间值
SELECT UTC_TIME();

-- 返回date对于的月份,1-12
SELECT MONTH("2017-11-07 16:13:13");
SELECT MONTH("2017-11-07 ");

-- 返回日期date对应月份的英文名 November
SELECT MONTHNAME("2017-11-07");

-- 返回日期d对应的英文名称,例如sunday,monday
SELECT DAYNAME("2017-11-07");

-- 返回日期d对应一周的第几天,0表示周一,1表示周二
SELECT WEEKDAY("2017-11-07");

-- 日期d是一年中的第几周
SELECT WEEK("2017-11-07");

-- 返回日期d是一年中的第几周,mod可以决定一周是从周几开始的
SELECT WEEK("2017-11-07",6);

-- 返回某天位于一年中的第几周
SELECT WEEKOFYEAR("2017-11-07");

-- 返回日期d是一年中的第几天 311
SELECT DAYOFYEAR("2017-11-07");

-- 返回日期d是当月中的第几天
SELECT DAYOFMONTH("2017-11-07");

-- 返回date对应的年份
SELECT YEAR("2017-11-07");

-- 返回date在一年中的第几个季度
SELECT QUARTER("2017-11-07");

-- 返回time中的分钟数
SELECT MINUTE("16:36:53");

-- 返回time中的秒数
SELECT SECOND("16:36:53");

-- 将time转换为秒数
SELECT TIME_TO_SEC("16:36:53");

-- 日期格式化
SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');
格式描述
%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)
%pAM 或 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 位

DATE_ADD()

函数向日期添加指定的时间间隔。

DATE_ADD(date,INTERVAL expr type)

date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔

SELECT DATE_ADD("2017-11-07",INTERVAL 2 DAY)
-->2017-11-09

其他函数例如:
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间
http://www.w3school.com.cn/sql/sql_dates.asp

加密函数

--  AES_ENCRYPT 返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
SELECT AES_ENCRYPT("wang","sjs");
SELECT AES_DECRYPT(AES_ENCRYPT("wang","sjs"),"sjs");

-- 使用key作为密钥解密加密字符串str
SELECT ENCODE("wagas","sfsf00");
SELECT DECODE(ENCODE("wagas","sfsf00"),"sfsf00");

SELECT MD5('123456');
SELECT SHA('123456')

参考

https://www.2cto.com/database/201310/248331.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值