mysql函数

来源:互联网 发布:紫阳万里 知乎 编辑:程序博客网 时间:2024/06/16 06:37
一、数学函数
//π
SELECT PI();


//保留几位数字同时进行四舍五入
select ROUND(3.343535,3);


//默认取整数
select ROUND(3.343535);


//获取当前数据库所在操作系统时间
SELECT NOW();


//绝对值
select ABS(-90);


//返回大于或等于x的最小整数
select CEIL(12.4);
select CEILING(12.4);


//返回小于或等于x的最小整数
select FLOOR(12.4);


//返回0->1的随机数
SELECT RAND();


//返回0->1的随机数,x值相同时每次返回的随机数相同
SELECT RAND(0.3);


//返回x的符号,x是负数、0、正数分别返回-1、0和1
SELECT SIGN(3);
SELECT SIGN(-3);
SELECT SIGN(0);


//返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)  SELECT 
SELECT TRUNCATE(3.427432,2);


//返回离x最近的整数
SELECT ROUND(5.7);
SELECT ROUND(5.4);


//返回x的y次方
SELECT POW(3.2,3);


//返回e的x次方
SELECT EXP(4);


//返回x除以y以后的余数
SELECT MOD(3.4,3);


//返回自然对数(以e为底的对数) 
SELECT log(3);


//返回以10为底的对数
SELECT LOG10(100);


//将角度转换为弧度
select RADIANS(60);




//将弧度转换为角度
SELECT DEGREES(3.14);


//求正弦值(参数是弧度) 
SELECT SIN(RADIANS(30));


//求反正弦值(参数是弧度)
SELECT ASIN(RADIANS(30));


//求余弦值(参数是弧度)
SELECT COS(RADIANS(30));


//求反余弦值(参数是弧度)
SELECT ACOS(RADIANS(30));


//求正切值(参数是弧度)
SELECT TAN(RADIANS(30));


//求反正切值(参数是弧度)
SELECT ATAN(RADIANS(30));
SELECT ATAN2(1,RADIANS(30));


//求余切值(参数是弧度)
SELECT COT(RADIANS(30));


二、字符串函数
//返回字符串s的字符数
SELECT CHAR_LENGTH('fsf sfd');
SELECT CHAR_LENGTH('你');


//返回字符串s的长度,字符串长度不等于字符数
SELECT LENGTH('你好fsfd');
SELECT LENGTH('你');
SELECT LENGTH('1');


//将字符串s1,s2等多个字符串合并为一个字符串
SELECT CONCAT('423','你好fsfd');


//同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上x,x不加单引号会导致没结果
SELECT CONCAT_WS('@','fdsf','25435');


//将字符串s2替换s1的x位置开始长度为len的字符串
SELECT INSERT('r3t3t',2,3,'rew');




//将字符串s的所有字母变成大写字母
SELECT UPPER('rewfdf');
SELECT UCASE('fdsfds');


//将字符串s的所有字母变成小写字母
SELECT LOWER('fdsfEREW');
SELECT LCASE('FSDREW');


//返回字符串s的前n个字符
SELECT LEFT('FDSFD',3);


//返回字符串s的后n个字符

SELECT RIGHT('fdsfds3342',4)

//


显示员工姓名的姓其他部分用*表示

//获得姓氏

SELECT LEFT(emp.emp_name,1)from emp;

//获得姓名的长度来减去姓1

SELECT CHARACTER_LENGTH(TRIM(emp.emp_name))-1 from emp;

//把名用*用代替

SELECT REPLACE('*',LEFT(emp.emp_name,2),CHARACTER_LENGTH(TRIM(emp.emp_name))-1)from emp;


SELECT CONCAT(LEFT(emp.emp_name,1),REPLACE('*',LEFT(emp.emp_name,2),CHARACTER_LENGTH(TRIM(emp.emp_name))-1))from emp;



//去掉字符串s开始和结尾处的空格
SELECT TRIM(' fdsfdsrew  ');
//去掉字符串s中开始处和结尾处的字符串s1
SELECT TRIM('2'from'2h565622');
//将字符串s重复n次
SELECT REPEAT('as321',2);
//返回n个空格
SELECT SPACE(4);
//可以用下面这个来测试
SELECT CONCAT('fds',SPACE(3),'r32');
//将字符串s2替代字符串s中的字符串s1
SELECT REPLACE('abcfds','c','321');
//比较字符串s1和s2
SELECT STRCMP('fdsf','43243');
//获取从字符串s中的第n个位置开始长度为len的字符串
SELECT SUBSTRING('fdsfsf',4,3);
SELECT MID('432fdsf',4,1111);
//从字符串s中获取s1的开始位置
SELECT LOCATE('re','4323refdsfds');
SELECT POSITION('re' IN 'fdsfre5453')

//返回第n个字符串
SELECT ELT(3,'fdsf','rew','rew342');


//返回一个字符串,在这里对于在“bits”中设定每一位,
//你得到一个“on”字符串,并且对于每个复位(reset)的位,
//你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”),
//并且只有“bits”的“number_of_bits” (缺省64)位被使用。
SELECT EXPORT_SET(5,'Y','N',',',4);


//返回第一个与字符串s匹配的字符串位置
SELECT FIELD('45','few','45','RR23','454');


//返回在字符串s2中与s1匹配的字符串的位置
SELECT FIND_IN_SET('32','rew32fds');


//返回当前日期
SELECT CURDATE();
SELECT CURRENT_DATE();
//返回当前时间
SELECT CURRENT_TIME();
//回当前时间
SELECT LOCALTIME();
//返回当前日期和时间
SELECT NOW();
//以UNIX时间戳的形式返回当前时间
SELECT UNIX_TIMESTAMP();
//将时间d以UNIX时间戳的形式返回
SELECT UNIX_TIMESTAMP('2011-11-11 11:11:11');
//将UNIX时间戳的时间转换为普通格式的时间
SELECT FROM_UNIXTIME('2011-11-11 11:11:11');
//返回UTC日期
SELECT UTC_DATE();
//返回UTC时间
SELECT UTC_TIME();
//返回日期d中的月份值
SELECT MONTH('2011-11-11 11:11:11');
//返回日期当中的月份名称
SELECT MONTHNAME('2011-11-11 11:11:11');
//返回日期d是星期几,如
SELECT DAYNAME('2011-11-11 11:11:11');
//日期d今天是星期几
SELECT DAYOFWEEK('2011-11-11 11:11:11');
//日期d今天是星期几
SELECT WEEKDAY('2011-11-11 11:11:11');
//计算日期d是本年的第几个星期
SELECT WEEk('2011-11-11 11:11:11');
//计算日期d是本年的第几天
SELECT DAYOFYEAR('2011-11-11 11:11:11');
//计算日期d是本月的第几天
SELECT DAYOFMONTH('2011-11-11 11:11:11');
//返回日期d是第几季节,返回1->4
SELECT QUARTER('2011-11-11 11:11:11');
//返回t中的小时值
SELECT HOUR('2011-11-11 11:11:11');
//返回t中的分钟值
SELECT MINUTE('2011-11-11 11:11:11');
//返回t中的分钟值
SELECT SECOND('11:11:11');
//返回t中的秒钟值
SELECT SECOND('11:11:11'); 
//计算日期d距离0000年1月1日的天数
SELECT TO_DAYS('2013-01-01 01:01:01');
//计算日期d1->d2之间相隔的天数
SELECT DATEDIFF('2001-02-02','2001-01-01');
//计算其实日期d加上n天的日
SELECT ADDDATE('2001-02-02',57);
//计算起始日期d加上一个时间段后的日期
SELECT ADDDATE('2001-02-02',INTERVAL 23 hour);
//日期d减去n天后的日期
SELECT SUBDATE('2001-02-02',INTERVAL 23 hour);
//时间t加上n秒的时间
SELECT ADDTIME('2011-11-11 11:11:11','%Y-%m-%d %r');
//按表达式f的要求显示日期d
DATE_FORMAT(date,format)
//获得国家地区时间格式函数
SELECT GET_FORMAT(date,'usa');

3.自定义函数

0 0
原创粉丝点击