函数
完整的分析语句语法如下:
SELECT [DISTINCT] (* | expression) [AS alias] [, ...] [GROUP BY expression [, ...] [HAVING predicates]] [ORDER BY expression [ASC | DESC] [, ...]] [LIMIT size OFFSET offset]
本章节介绍函数。
数学类
函数 |
作用 |
定义 |
示例 |
---|---|---|---|
abs |
绝对值 |
abs(number T) -> T |
SELECT abs(0.5) LIMIT 1 |
add |
加法 |
add(number T, number) -> T |
SELECT add(1, 5) LIMIT 1 |
cbrt |
立方根 |
cbrt(number T) -> T |
SELECT cbrt(0.5) LIMIT 1 |
ceil |
向上取整 |
ceil(number T) -> T |
SELECT ceil(0.5) LIMIT 1 |
divide |
除法 |
divide(number T, number) -> T |
SELECT divide(1, 0.5) LIMIT 1 |
e |
自然底数 e |
e() -> double |
SELECT e() LIMIT 1 |
exp |
自然底数 e 的次幂 |
exp(number T) -> T |
SELECT exp(0.5) LIMIT 1 |
expm1 |
自然底数 e 的次幂减一 |
expm1(number T) -> T |
SELECT expm1(0.5) LIMIT 1 |
floor |
向下取整 |
floor(number T) -> T |
SELECT floor(0.5) AS Rounded_Down LIMIT 1 |
ln |
自然对数 |
ln(number T) -> double |
SELECT ln(10) LIMIT 1 |
log |
以 T 为底数的对数 |
log(number T, number) -> double |
SELECT log(10) LIMIT 1 |
log2 |
以 2 为底数的对数 |
log2(number T) -> double |
SELECT log2(10) LIMIT 1 |
log10 |
以 10 为底数的对数 |
log10(number T) -> double |
SELECT log10(10) LIMIT 1 |
mod |
取余 |
mod(number T, number) -> T |
SELECT modulus(2, 3) LIMIT 1 |
multiply |
乘法 |
multiply(number T, number) -> number |
SELECT multiply(2, 3) LIMIT 1 |
pi |
π |
pi() -> double |
SELECT pi() LIMIT 1 |
pow |
T 的次幂 |
pow(number T, number) -> T |
SELECT pow(2, 3) LIMIT 1 |
power |
T 的次幂 |
power(number T) -> T, power(number T, number) -> T |
SELECT power(2, 3) LIMIT 1 |
rand |
随机数 |
rand() -> number, rand(number T) -> T |
SELECT rand(5) LIMIT 1 |
rint |
舍弃小数 |
rint(number T) -> T |
SELECT rint(1.5) LIMIT 1 |
round |
四舍五入 |
round(number T) -> T |
SELECT round(1.5) LIMIT 1 |
sign |
符号 |
sign(number T) -> T |
SELECT sign(1.5) LIMIT 1 |
signum |
符号 |
signum(number T) -> T |
SELECT signum(0.5) LIMIT 1 |
sqrt |
平方根 |
sqrt(number T) -> T |
SELECT sqrt(0.5) LIMIT 1 |
subtract |
减法 |
subtract(number T, number) -> T |
SELECT subtract(3, 2) LIMIT 1 |
/ |
除法 |
number / number -> number |
SELECT 1 / 100 LIMIT 1 |
% |
取余 |
number % number -> number |
SELECT 1 % 100 LIMIT 1 |
三角函数
函数 |
作用 |
定义 |
示例 |
---|---|---|---|
acos |
反余弦 |
acos(number T) -> double |
SELECT acos(0.5) LIMIT 1 |
asin |
反正弦 |
asin(number T) -> double |
SELECT asin(0.5) LIMIT 1 |
atan |
反正切 |
atan(number T) -> double |
SELECT atan(0.5) LIMIT 1 |
atan2 |
T 和 U 相除的结果的反正切 |
atan2(number T, number U) -> double |
SELECT atan2(1, 0.5) LIMIT 1 |
cos |
余弦 |
cos(number T) -> double |
SELECT cos(0.5) LIMIT 1 |
cosh |
双曲余弦 |
cosh(number T) -> double |
SELECT cosh(0.5) LIMIT 1 |
cot |
余切 |
cot(number T) -> double |
SELECT cot(0.5) LIMIT 1 |
degrees |
弧度转换为度 |
degrees(number T) -> double |
SELECT degrees(0.5) LIMIT 1 |
radians |
度转换为弧度 |
radians(number T) -> double |
SELECT radians(0.5) LIMIT 1 |
sin |
正弦 |
sin(number T) -> double |
SELECT sin(0.5) LIMIT 1 |
sinh |
双曲正弦 |
sinh(number T) -> double |
SELECT sinh(0.5) LIMIT 1 |
tan |
正切 |
tan(number T) -> double |
SELECT tan(0.5) LIMIT 1 |
时间函数
函数 |
作用 |
定义 |
示例 |
---|---|---|---|
curdate |
当前日期 |
curdate() -> date |
SELECT curdate() LIMIT 1 |
date |
日期 |
date(date) -> date |
SELECT date() LIMIT 1 |
date_format |
根据格式获取对应日期值 |
date_format(date, string) -> string |
SELECT date_format(date, 'Y') LIMIT 1 |
day_of_month |
月份 |
day_of_month(date) -> integer |
SELECT day_of_month(date) LIMIT 1 |
day_of_week |
周几 |
day_of_week(date) -> integer |
SELECT day_of_week(date) LIMIT 1 |
day_of_year |
当年天数 |
day_of_year(date) -> integer |
SELECT day_of_year(date) LIMIT 1 |
hour_of_day |
当天小时数 |
hour_of_day(date) -> integer |
SELECT hour_of_day(date) LIMIT 1 |
maketime |
生成日期 |
maketime(integer, integer, integer) -> time |
SELECT maketime(11, 30, 00) LIMIT 1 |
minute_of_hour |
当前小时分钟数 |
minute_of_hour(date) -> integer |
SELECT minute_of_hour(date) LIMIT 1 |
minute_of_day |
当天分钟数 |
minute_of_day(date) -> integer |
SELECT minute_of_day(date) LIMIT 1 |
monthname |
月份名称 |
monthname(date) -> string |
SELECT monthname(date) LIMIT 1 |
now |
当前时间 |
now() -> time |
SELECT now() LIMIT 1 |
second_of_minute |
秒数 |
minute_of_day(date) -> integer |
SELECT minute_of_day(date) LIMIT 1 |
timestamp |
日期 |
timestamp(date) -> date |
SELECT timestamp(date) LIMIT 1 |
year |
年份 |
year(date) -> integer |
SELECT year(date) LIMIT 1 |
文本函数
函数 |
作用 |
定义 |
示例 |
---|---|---|---|
ascii |
第一个字符的ASCII 值 |
ascii(string T) -> integer |
SELECT ascii('t') LIMIT 1 |
concat_ws |
连接字符串 |
concat_ws(separator, string, string) -> string |
SELECT concat_ws('-', 'Tutorial', 'is', 'fun!') LIMIT 1 |
left |
从左往右取字符串 |
left(string T, integer) -> T |
SELECT left('hello', 2) LIMIT 1 |
length |
长度 |
length(string) -> integer |
SELECT length('hello') LIMIT 1 |
locate |
查找字符串 |
locate(string, string) -> integer |
SELECT locate('o', 'hello') LIMIT 1 |
replace |
替换字符串 |
replace(string T, string, string) -> T |
SELECT replace('hello', 'l', 'x') LIMIT 1 |
right |
从右往左取字符串 |
right(string T, integer) -> T |
SELECT right('hello', 1) LIMIT 1 |
rtrim |
去除右侧空字符串 |
rtrim(string T) -> T |
SELECT rtrim('hello ') LIMIT 1 |
substring |
取子字符串 |
substring(string T, integer, integer) -> T |
SELECT substring('hello', 2,5) LIMIT 1 |
trim |
去除两侧空字符串 |
trim(string T) -> T |
SELECT trim(' hello ') LIMIT 1 |
upper |
全部转为大写 |
upper(string T) -> T |
SELECT upper('helloworld') LIMIT 1 |
其他
函数 |
作用 |
定义 |
示例 |
---|---|---|---|
if |
if判断 |
if(boolean, object, object) -> object |
SELECT if(false, 0, 1) LIMIT 1 , SELECT if(true, 0, 1) LIMIT 1 |
ifnull |
字段为null时,填充默认值 |
ifnull(object, object) -> object |
SELECT ifnull('hello', 1) LIMIT 1 , SELECT ifnull(null, 1) LIMIT 1 |
isnull |
字段是否为null,是返回1,否返回0 |
isnull(object) -> integer |
SELECT isnull(null) LIMIT 1 , SELECT isnull(1) LIMIT 1 |