首页 > 开发 > MySQL > 正文

MYSQL 函数汇总

2017-02-14 21:27:00  来源:阿里云

数值函数:

名字描述                                                                                                    
ABS()返回数字表达式的绝对值。
ACOS()返回数字表达式的反余弦值。如果值是不在范围-1到1,则返回NULL。
ASIN()返回数字表达式的反正弦。返回NULL,如果值不在范围-1到1
ATAN()返回数字表达式的反正切。
ATAN2()返回传递给它的两个变量的反正切。
BIT_AND()返回按位AND运算表达中的所有位。
BIT_COUNT()返回传递给它的二进制值的字符串表示。
BIT_OR()返回传递表达的所有位的位或。
CEIL()返回最小的整数值但不能比传递的数字表达式小
CEILING()返回最小的整数值但不能比传递的数字表达式小
CONV()表达式从一个基数到另一个基数转换的数字。
COS()返回传递数字表达式的余弦值。数字表达式应该用弧度表示。
COT()返回传递数字表达式的余切。
DEGREES()返回数字表达式从弧度转换为度。
EXP()返回数值表达式的自然对数(E)为基数的幂。
FLOOR()返回最大整数值但不能大于通过表达式数值。
FORMAT()返回数字表达式舍入到小数位数。
GREATEST()返回输入表达式的最大值。
INTERVAL()需要多个表达式exp1, exp2和exp3等..如果为exp1小于exp2返回0,如果为exp1小于exp3返回1等。
LEAST()给两个或两个以上时,返回所有输入的最小值。
LOG()返回通过数字表达式的自然对数。
LOG10()返回传递表达的基数为10对数的数值。
MOD()返回表达式由另一个表达式除以剩余部分。
OCT()返回通过数字表达式的八进制值的字符串表示。如果传递值为NULL,返回NULL。
PI()返回圆周率的值
POW()返回一个表达式到另一个表达的次方值
POWER()返回一个表达式到另一个表达的次方值
RADIANS()返回传递表达从度转换为弧度值
ROUND()返回数字表达式四舍五入到整数。可用于舍入表达式为小数点数值
SIN()返回给定的数字表达的正弦值(弧度)
SQRT()返回数字表达式的非负平方根
STD()返回数字表达式的标准偏差
STDDEV()返回数字表达式的标准偏差
TAN()返回以弧度表示数值表达式的正切值。
TRUNCATE()返回exp1小数位数字截断到exp2。如果exp2为0,则结果将没有小数点。


日期函数:

函数名称描述
ADDDATE()相加日期
ADDTIME()相加时间
CONVERT_TZ()从一个时区转换到另一个时区
CURDATE()返回当前日期
CURRENT_DATE(), CURRENT_DATECURDATE() 函数的同义词
CURRENT_TIME(), CURRENT_TIMECURTIME() 函数的同义词
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMPNOW() 函数的同义词
CURTIME()返回当前时间
DATE_ADD()两个日期相加
DATE_FORMAT()按格式指定日期
DATE_SUB()两个日期相减
DATE()提取日期或日期时间表达式的日期部分
DATEDIFF()两个日期相减
DAY()DAYOFMONTH() 函数的同义词
DAYNAME()返回星期的名字
DAYOFMONTH()返回该月的第几天 (1-31)
DAYOFWEEK()返回参数的星期索引
DAYOFYEAR()返回一年中的天 (1-366)
EXTRACT提取日期部分
FROM_DAYS()日期的数字转换为一个日期
FROM_UNIXTIME()格式化日期为UNIX时间戳
HOUR()提取小时部分
LAST_DAY返回该参数对应月份的最后一天
LOCALTIME(), LOCALTIMENOW() 函数的同义词
LOCALTIMESTAMP, LOCALTIMESTAMP()NOW() 函数的同义词
MAKEDATE()从一年的年份和日期来创建日期
MAKETIMEMAKETIME()
MICROSECOND()从参数中返回微秒
MINUTE()从参数返回分钟
MONTH()通过日期参数返回月份
MONTHNAME()返回月份的名称
NOW()返回当前日期和时间
PERIOD_ADD()添加一个周期到一个年月
PERIOD_DIFF()返回两个时期之间的月数
QUARTER()从一个日期参数返回季度
SEC_TO_TIME()转换秒为“HH:MM:SS'的格式
SECOND()返回秒 (0-59)
STR_TO_DATE()转换一个字符串为日期
SUBDATE()当调用三个参数时,它就是 DATE_SUB() 的代名词
SUBTIME()相减时间
SYSDATE()返回函数执行时的时间
TIME_FORMAT()格式化为时间
TIME_TO_SEC()将参数转换成秒并返回
TIME()提取表达式传递的时间部分
TIMEDIFF()相减时间
TIMESTAMP()带一个参数,这个函数返回日期或日期时间表达式。有两个参数,参数的总和
TIMESTAMPADD()添加一个时间间隔到datetime表达式
TIMESTAMPDIFF()从日期时间表达式减去的间隔
TO_DAYS()返回日期参数转换为天
UNIX_TIMESTAMP()返回一个UNIX时间戳
UTC_DATE()返回当前UTC日期
UTC_TIME()返回当前UTC时间
UTC_TIMESTAMP()返回当前UTC日期和时间
WEEK()返回周数
WEEKDAY()返回星期的索引
WEEKOFYEAR()返回日期的日历周 (1-53)
YEAR()返回年份
YEARWEEK()返回年份和周


我们已经学到MySQL的模式匹配:LIKE ...%。 MySQL支持另一种类型的模式匹配的操作基于正则表达式和正则表达式运算符。

以下是模式的表格,其可以连同REGEXP运算符使用。

模式什么样的模式匹配
^开始的一个字符串
$结束的一个字符串
.任意单个字符
[...]方括号中列出的任何字符
[^...]任何字符方括号之间不会被列出
p1|p2|p3交替;匹配的任何模式 p1, p2, 或 p3
*前一个元素的零个或多个实例
+前面元素的一或多个实例
{n}前一个元素的n个实例
{m,n}前一个元素的 m 到 n 个实例


示例

比如有一个表称为 person,它是有一个 name 字段:

查询查找所有以 “st” 开头的名字:

mysql> SELECT name FROM person WHERE name REGEXP '^st';

查询找到所有以 'ok' 结尾的名字

mysql> SELECT name FROM person WHERE name REGEXP 'ok$';

查询查找其中包含 'mar' 所有的名字

mysql> SELECT name FROM person WHERE name REGEXP 'mar';

查询查找以元音 'ok' 结尾的所有名称

mysql> SELECT name FROM person WHERE name REGEXP '^[aeiou]|ok$';


重要的 MySQL 函数的列表:

MySQL Group By 子句 - MySQL的GROUP BY语句以及SQL聚合函数,用于类似SUM提供某些数据库表的列来分组结果数据集

MySQL IN 子句 - 这是一个子句,它可以用来连同任何MySQL查询语句以指定条件

MySQL BETWEEN 子句 - 这是一个子句,它可以用来与任何MySQL查询来指定条件

MySQL UNION关键字 - 使用UNION操作多个结果集组合成一个结果集

MySQL COUNT()函数 - MySQL的COUNT聚合函数用于计算一个数据库表中的行数

MySQL MAX() 函数 - MySQL的MAX聚合函数允许我们选择某些列的最高(最大)值

MySQL MIN()函数 - MySQL的MIN聚合函数允许我们选择某些列的最低(最小)值

MySQL AVG()函数 - MySQL的AVG聚合函数是用来对某些表的列求它的平均值

MySQL SUM()函数 - MySQL的SUM聚合函数允许选择某列的总和

MySQL SQRT函数 - 这是用来生成给定数的平方根

MySQL RAND()函数 - 使用MySQL命令产生一个随机数

MySQL CONCAT()函数 - 这是用来连接MySQL命令中的任何字符串

MySQL DATE 和 Time 时间日期函数 - MySQL日期和时间相关的函数完整列表

MySQL数字函数 - 在MySQL中操作数字的MySQL函数完整列表

MySQL字符串函数 - 在MySQL中的字符串操作的MySQL函数的完整列表


简单示例:

DATE_ADD(date,INTERVAL expr type) 

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


DATE_SUB(date,INTERVAL expr type)

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


DATE_FORMAT(date,format) 

#date 参数是合法的日期。format 规定日期/时间的输出格式。


TO_DAYS(date) 

#给定日期返回从0年开始的天数


LAST_DAY('20170101') 

#给定日期参数返回当前月最后一天日期


DATE('2016-12-29 15:25:46.635') 

#返回年月日