字符串
select ascii('CustomerName');
select char_length("RUNOOB");
select character_length("RUNOOB") ;
select concat("SQL ", "Runoob ", "Gooogle ", "Facebook");
select concat_ws("-", "SQL", "Tutorial", "is", "fun!");
select field("c", "a", "b", "c", "d", "e");
select find_in_set("c", "a,b,c,d,e");
select format(250500.5634, 2);
select insert("google.com", 1, 6, "runnob");
select locate('b', 'abc');
select position('b' in 'abc');
select ucase("runoob");
select upper("runoob");
select lcase('RUNOOB');
select lower('RUNOOB');
select left('runoob',2);
select right('runoob',2);
select lpad('abc',5,'xx');
select rpad('abc',5,'xx');
select trim(' RUNOOB ') ;
select ltrim(" RUNOOB ");
select rtrim(" RUNOOB ");
select space(10);
select mid("RUNOOB", 2, 3) ;
select repeat('runoob',3);
select replace('abc','a','x')
select reverse('abc');
select substr("RUNOOB", 2, 3);
select substring("RUNOOB", 2, 3);
select strcmp("runoob", "runoob");
select substring_index('a*b','*',1);
select substring_index('a*b','*',-1);
select substring_index(substring_index('a*b*c*d*e','*',3),'*',-1);
数字函数
select abs(-1);
select cos(2);
select sin(2);
select cot(6);
select tan(1.75);
select acos(0.25);
select asin(0.25);
select atan(2.5);
select atan2(-0.8, 2);
select ceil(1.5);
select ceiling(1.5);
select degrees(3.1415926535898);
select 10 DIV 5;
select exp(3);
select floor(1.5);
select greatest(3, 12, 34, 8, 25);
select greatest("Google", "Runoob", "Apple");
select least(3, 12, 34, 8, 25);
select least("Google", "Runoob", "Apple");
select ln(2);
select log(20.085536923188);
select log(2, 4);
select log10(100);
select log2(6);
select mod(5,2);
select pi();
select pow(2,3);
select power(2,3);
select radians(180);
select rand();
select round(1.23456);
select sign(-10);
select sqrt(25);
select truncate(1.23456,3);
日期函数
select adddate("2017-06-15", INTERVAL 10 DAY);
select adddate('2011-11-11 11:11:11',1);
select adddate('2011-11-11 11:11:11', INTERVAL 5 MINUTE);
select addtime('2011-11-11 11:11:11', 5);
select curdate();
select current_date();
select localtime()
select curtime();
select current_time();
select current_timestamp();
select date("2017-06-15");
select day("2017-06-15");
select dayname('2011-11-11 11:11:11');
select dayofmonth('2011-11-11 11:11:11');
select dayofweek('2011-11-11 11:11:11');
select dayofyear('2011-11-11 11:11:11');
select extract(MINUTE FROM '2011-11-11 11:11:11') ;
select from_days(1111) ;
select hour('1:2:3');
select last_day("2017-06-20");
select datediff('2001-01-01','2001-02-02');
select date_format('2011-11-11 11:11:11','%Y-%m-%d %r');
select localtimestamp() -> 2018-09-19 20:57:43
select makedate(2017, 3);
select maketime(11, 35, 4);
select microsecond("2017-06-20 09:34:00.000023");
select minute('1:2:3');
select monthname('2011-11-11 11:11:11');
select month('2011-11-11 11:11:11');
select now();
select period_add(201703, 5);
select period_diff(201710, 201703);
select quarter('2011-11-11 11:11:11');
SECOND(t) 返回 t 中的秒钟值
select second('1:2:3');
SEC_TO_TIME(s) 将以秒为单位的时间 s 转换为时分秒的格式
select sec_to_time(4320);
STR_TO_DATE(string, format_mask) 将字符串转变为日期
select str_to_date("August 10 2017", "%M %d %Y");
-> 2017-08-10
SUBDATE(d,n) 日期 d 减去 n 天后的日期
select subdate('2011-11-11 11:11:11', 1);
SUBTIME(t,n) 时间 t 减去 n 秒的时间
select subtime('2011-11-11 11:11:11', 5);
SYSDATE() 返回当前日期和时间
select sysdate();
TIME(expression) 提取传入表达式的时间部分
select time("19:30:10");
-> 19:30:10
TIME_FORMAT(t,f) 按表达式 f 的要求显示时间 t
select time_format('11:11:11','%r')
11:11:11 AM
TIME_TO_SEC(t) 将时间 t 转换为秒
select time_to_sec('1:12:00');
TIMEDIFF(time1, time2) 计算时间差值
select timediff("13:10:11", "13:10:10");
-> 00:00:01
TIMESTAMP(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
select timestamp("2017-07-23", "13:10:11");
-> 2017-07-23 13:10:11
TO_DAYS(d) 计算日期 d 距离 0000 年 1 月 1 日的天数
select to_days('0001-01-01 01:01:01');
WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
select week('2011-11-11 11:11:11');
WEEKDAY(d) 日期 d 是星期几,0 表示星期一,1 表示星期二
select weekday("2017-06-15");
-> 3
WEEKOFYEAR(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53
select weekofyear('2011-11-11 11:11:11');
YEAR(d) 返回年份
select year("2017-06-15");
-> 2017
YEARWEEK(date, mode) 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推
select yearweek("2017-06-15");
-> 201724
MySQL 高级函数
函数名 描述 实例
BIN(x) 返回 x 的二进制编码
15 的 2 进制编码:
select bin(15);
BINARY(s) 将字符串 s 转换为二进制字符串
select binary "RUNOOB";
-> RUNOOB
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
CASE 表示函数开始,END 表示函数结束。如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2,当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。
select case
WHEN 1 > 0
THEN '1 > 0'
WHEN 2 > 0
THEN '2 > 0'
ELSE '3 > 0'
END
->1 > 0
CAST(x AS type) 转换数据类型
字符串日期转换为日期:
select cast("2017-08-29" AS DATE);
-> 2017-08-29
COALESCE(expr1, expr2, ...., expr_n) 返回参数中的第一个非空表达式(从左向右)
select coalesce(NULL, NULL, NULL, 'runoob.com', NULL, 'google.com');
-> runoob.com
CONNECTION_ID() 返回唯一的连接 ID
select connection_id();
-> 4292835
CONV(x,f1,f2) 返回 f1 进制数变成 f2 进制数
select conv(15, 10, 2);
-> 1111
CONVERT(s USING cs) 函数将字符串 s 的字符集变成 cs
select charset('ABC');
select charset(CONVERT('ABC' USING gbk));
CURRENT_USER() 返回当前用户
select current_user();
-> guest@%
DATABASE() 返回当前数据库名
select database();
-> runoob
IF(expr,v1,v2) 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
select if(1 > 0,'正确','错误')
->正确
IFNULL(v1,v2) 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
select ifnull(null,'Hello Word');
ISNULL(expression) 判断表达式是否为 NULL
select isnull(NULL);
->1
LAST_INSERT_ID() 返回最近生成的 AUTO_INCREMENT 值
select last_insert_id();
->6
NULLIF(expr1, expr2) 比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1
select nullif(25, 25);
->
SESSION_USER() 返回当前用户
select session_user();
-> guest@%
SYSTEM_USER() 返回当前用户
select system_user();
-> guest@%
USER() 返回当前用户
select user();
-> guest@%
VERSION() 返回数据库的版本号
select version();