查看“MySQL 函数和运算符:数值函数和运算符”的源代码
←
MySQL 函数和运算符:数值函数和运算符
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:MySQL文档]] == 算术运算符 == {| class="wikitable" ! Name !! Description |- | %, MOD || Modulo operator【取模,即取余数】 |- | * || Multiplication operator |- | + || Addition operator |- | - || Minus operator |- | - || 更改参数的符号【一元减】 |- | / || Division operator |- | DIV || 整数除法【结果只取整数部分】 |} 可以使用通常的算术运算符。根据以下规则确定结果: # 对于“+”,“-”和“*”,如果两个操作数均为'''整数''',则以“'''BIGINT'''”(64 位)精度计算结果。 # 如果两个操作数都是整数,并且它们中的任何一个都是无符号的,则结果是无符号的整数。对于减法,如果启用了“NO_UNSIGNED_SUBTRACTION” SQL 模式,则即使对任何操作数都是无符号的,结果也是无符号数。 # 如果“+”,“-”,“*”,“/”,“%”的任何操作数是实数值或字符串值,则'''结果的精度是具有最大精度的操作数的精度'''。 # 在使用“/”执行的除法中,使用两个精确值操作数时结果的小数位数是'''第一个操作数的小数加“div_precision_increment”(默认为 4)系统变量的值'''。 #: 例如,表达式“5.05 / 0.014”的结果的小数位数为六位:“360.714286”。 == 数学函数 == {| class="wikitable" ! Option Name !! Description |- | '''ABS()''' || 返回'''绝对值''' |- | ACOS() || 返回反余弦 |- | ASIN() || 返回反正弦 |- | ATAN() || 返回反正切 |- | ATAN2(), ATAN() || 返回两个参数的反正切 |- | '''CEIL()''' || 返回'''不小于参数的最小整数值''' |- | '''CEILING()''' || 返回'''不小于参数的最小整数值''' |- | CONV() || 在不同的基数之间转换数字【???】 |- | COS() || 返回余弦 |- | COT() || 返回余切 |- | CRC32() || 计算循环冗余校验值 |- | DEGREES() || 将弧度转换为度 |- | '''EXP()''' || 返回'''e的幂'''(e 为自然对数的底)【反函数是“LOG()”(仅使用单个参数)或“LN()”】 |- | '''FLOOR()''' || 返回'''不大于参数的最大整数值''' |- | LN() || 返回参数的自然对数 |- | LOG() || 返回第一个参数的自然对数 |- | LOG10() || 返回参数的以 10 为底的对数 |- | LOG2() || 返回参数的以 2 为底的对数 |- | MOD() || 取余 |- | PI() || 返回 pi 的值 |- | '''POW()''' || 将自变量提高到指定的'''幂''' |- | '''POWER()''' || 将自变量提高到指定的'''幂''' |- | RADIANS() || 返回参数转换为弧度 |- | RAND() || 返回一个随机浮点值 |- | '''ROUND()''' || 返回'''近似值'''(四舍五入)【】 |- | SIGN() || 返回参数的符号 |- | SIN() || 返回参数的正弦 |- | '''SQRT()''' || 返回参数的'''平方根''' |- | TAN() || 返回参数的正切值 |- | '''TRUNCATE()''' || 截断为指定的小数位数 |} * 发生错误时,所有 math 函数均返回“NULL”。 “'''CONV(N,from_base,to_base)'''”:在不同的数字基数之间转换数字。返回数字“N”的字符串表示形式,从基数“from_base”转换为基数“to_base”。【???】 * 如果任何参数为 NULL,则返回 NULL。 * 参数“N”被解释为整数,但可以指定为整数或字符串。 * 最小底数是 2,最大底数是 36。如果“from_base”为负数,则“N”被视为带符号的数字。否则,“N”被视为无符号数。 * “CONV()”以 64 位精度工作。 <syntaxhighlight lang="xml"> mysql> SELECT CONV('a',16,2); -> '1010' mysql> SELECT CONV('6E',18,8); -> '172' mysql> SELECT CONV(-17,10,-18); -> '-H' mysql> SELECT CONV(10+'10'+'10'+X'0a',10,10); -> '40' </syntaxhighlight> “'''ROUND(X)''', '''ROUND(X,D)'''”:将参数“X”舍入为“D”小数位。 * '''舍入算法取决于“X”的数据类型'''。 * “D”如果未指定,则默认为'''0'''。 * “D”可以为负,导致“D”值“X”小数点后的数字变为零。 * “D”的最大绝对值为'''30''';超过30(或-30)的任何数字都将被截断。 <syntaxhighlight lang="xml"> mysql> SELECT ROUND(-1.23); -> -1 mysql> SELECT ROUND(-1.58); -> -2 mysql> SELECT ROUND(1.58); -> 2 mysql> SELECT ROUND(1.298, 1); -> 1.3 mysql> SELECT ROUND(1.298, 0); -> 1 mysql> SELECT ROUND(23.298, -1); -> 20 mysql> SELECT ROUND(.12345678901234567890123456789012345, 35); -> 0.123456789012345678901234567890 </syntaxhighlight> “ROUND()”根据第一个参数的类型使用以下规则: * 对于精确值数字,“ROUND()”使用“'''从零开始舍入一半'''”或“'''向最接近的舍入'''”规则: *# 小数部分为“.5”或更大的值时:如果为正数,则入到下一个整数;如果为负数,则舍到下一个整数。(换句话说,四舍五入到零) *# 小数部分小于“.5”的值:如果为正数,则舍到下一个整数;如果为负数,则入到下一个整数。 * 对于近似值数字,结果取决于 C 库。在许多系统上,这意味着“ROUND()”使用“'''四舍五入到最接近的偶数'''”规则:小数部分恰好位于两个整数中间的值将四舍五入为最接近的偶数整数。 <syntaxhighlight lang="xml"> mysql> SELECT ROUND(2.5), ROUND(25E-1); +------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+ </syntaxhighlight> “'''TRUNCATE(X,D)'''”:返回数字将“X”截取“D”小数位。 * '''所有数字均四舍五入'''。 * 如果“D”是0,则结果没有小数点或小数部分。 * “D”可以为负,导致“D”值“X”小数点后的数字变为零。 <syntaxhighlight lang="xml"> mysql> SELECT TRUNCATE(1.223,1); -> 1.2 mysql> SELECT TRUNCATE(1.999,1); -> 1.9 mysql> SELECT TRUNCATE(1.999,0); -> 1 mysql> SELECT TRUNCATE(-1.999,1); -> -1.9 mysql> SELECT TRUNCATE(122,-2); -> 100 mysql> SELECT TRUNCATE(10.28*100,0); -> 1028 </syntaxhighlight>
返回至“
MySQL 函数和运算符:数值函数和运算符
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息