Mysql 各种函数

来源:互联网 发布:java删除数组中的元素 编辑:程序博客网 时间:2024/05/20 09:24


数学函数

-- 返回X绝对值SELECT ABS(-9);SELECT PI();-- 返回X平方根 负数不能开平方根,返回nullSELECT SQRT(-4);-- 返回X被Y除后的余数SELECT MOD(5,2);-- 返回不小于X的最小整数值SELECT CEIL(3.44),CEILING(3.44);-- 返回不大于X的最大整数值SELECT FLOOR(3.56);-- 产生随机数 格式如:0.886545069410042,0.0039664851538524825SELECT RAND();-- 产生随机数,若X相同,多次执行,产生的随机数相同 0.40613597483014313SELECT RAND(5);-- 返回X四舍五入的整数值SELECT ROUND(4.4);-- 返回对X进行四舍五入,其值保留到小数点后Y位,若Y为负,则保留小数点左边Y位 4.556SELECT ROUND(4.55555,3);-- 返回X的符号,负数返回-1,零返回0,整数返回1SELECT SIGN(-9);-- 返回X的Y次幂SELECT POW(2,3),POWER(3,2);-- 返回e的X次幂 2.718281828459045SELECT 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,.....拼接起来 erex22x333SELECT CONCAT_WS("x","ere","22",'333');-- INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于X位置和被字符串s2取代的len字符 12defSELECT INSERT("abcdef",1,3,12);-- 大写字母转为小写SELECT LOWER("DFSFfd");SELECT LCASE("DFSFfd");-- 小写字母转为大写SELECT UPPER("sfjslfj");SELECT UCASE("sdffsddf");-- 返回字符串s左边n个字符组成的子串 abcdefSELECT LEFT("abcdefg",6);-- 返回字符串s左边n个字符组成的子串 bcdefgSELECT RIGHT("abcdefg",6);-- LPAD(s1,len,s2)返回字符串s1,其左边被字符串s2填补至len字符长度,如果s1的长度大于len,则返回值被缩短至len个字符 SELECT LPAD("123456",7,"aa");-- a123456SELECT LPAD("123456",3,"aa");-- 123-- RPAD(s1,len,s2)返回字符串s1,其右边被字符串s2填补至len字符长度,如果s1的长度大于len,则返回值被缩短至len个字符 SELECT RPAD("123456",7,"aa");-- 123456aSELECT 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");-- srSELECT 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_strSELECT 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-12SELECT MONTH("2017-11-07 16:13:13");SELECT MONTH("2017-11-07 ");-- 返回日期date对应月份的英文名 NovemberSELECT MONTHNAME("2017-11-07");-- 返回日期d对应的英文名称,例如sunday,mondaySELECT 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是一年中的第几天 311SELECT 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) %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 位

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作为密钥解密加密字符串strSELECT ENCODE("wagas","sfsf00");SELECT DECODE(ENCODE("wagas","sfsf00"),"sfsf00");SELECT MD5('123456');SELECT SHA('123456')

参考

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

原创粉丝点击