PostgreSQL为很多类型提供了数学操作符。对于那些没有标准数学表达的类型(如日期/时间类型),我们将在后续小节中描述实际的行为。
表 9.4 显示了可用于标准数字类型的数学操作符。. 除非另有说明, 显示为可接受 numeric_type
的操作符对所有的 smallint
、integer
、bigint
、numeric
、real
和 double precision
类型都可用。 显示为可接受 integral_type
的操作符对 smallint
、integer
和 bigint
类型是可用的。 除了特别说明之处,操作符的每种形式都返回与其参数相同的数据类型。 涉及多个参数数据类型的调用, 例如 integer
+
numeric
,可通过使用这些列表中稍后出现的类型来解析。
表 9.4. 数学操作符
操作符 描述 例子 |
---|
加
|
一元加(无操作)
|
减
|
否定
|
乘
|
除(对于整型,除法将结果截断为零)
|
模(取余); 适用于
|
指数 (不像典型的数学实践, 多次使用
|
平方根
|
立方根
|
阶乘(已弃用, 使用
|
阶乘作为前缀操作符(已弃用, 使用
|
绝对值
|
按位与(AND)
|
按位或(OR)
|
按位异或(exclusive OR)
|
按位求反(NOT)
|
按位左移
|
按位右移
|
表 9.5 显示了可用的数学函数。 许多这样的函数以多种具有不同的参数类型的形式提供。 除非注明,任何给定形式的函数都返回与其参数相同的数据类型;跨类型情况的解决方法与上述对操作符的解释相同。 使用double precision
数据的函数大多是在主机系统的C库上实现的; 因此,边界情况下的准确性和行为会因主机系统的区别而不同。
表 9.5. 数学函数
函数 描述 例子 |
---|
绝对值
|
立方根
|
大于或等于参数的最接近的整数
|
大于或等于参数的最接近的整数 (与
|
将弧度转换为角度
|
|
指数 (
|
阶乘
|
小于或等于参数的最接近整数
|
最大公约数 (能将两个输入数整除而无余数的最大正数); 如果两个输入为零则返回
|
最小公倍数(两个输入的整数倍的最小的严格正数);如果任意一个输入值为零则返回
|
自然对数
|
以10为底的对数
|
以10为底的对数 (与
|
以
|
精确表示所提供值所需的最小刻度(小数位数)
|
|
π的近似值
|
|
将角度转换为弧度
|
四舍五入到最近的整数
|
把
|
参数的刻度(小数点后的位数)
|
参数的符号 (-1, 0, 或 +1)
|
平方根
|
通过删除尾数部分的零来降低值的刻度(小数位数)
|
截断整数 (向零靠近)
|
截断
|
返回包含
|
返回一个柱号,这个柱是在给定数组中
|
表 9.6展示了用于产生随机数的函数。
表 9.6. 随机函数
函数 描述 例子 |
---|
返回一个范围 0.0 <= x < 1.0 中的随机值
|
为后续的
|
random()
函数使用了一个简单的线性共轭算法。 它的速度很快,但不适合于密码学应用;关于更安全的替代方案,请参阅 pgcrypto模块。 如果setseed()
被调用,那么当前会话中的一系列后续random()
调用的结果能够通过使用相同的参数重新发布setseed()
来重复。
表 9.7显示了可用的三角函数。 每一种这样的函数都有两个变体,一个以弧度度量角,另一个以角度度量角。
表 9.7. 三角函数
函数 描述 例子 |
---|
反余弦,结果为弧度
|
反余弦,结果为度数
|
反正弦,结果为弧度
|
反正弦,结果为度数
|
反正切,结果为弧度
|
反正切,结果为度数
|
|
|
余弦,参数为弧度
|
余弦,参数为度数
|
余切,参数为弧度
|
余切,参数为度数
|
正弦,参数为弧度
|
正弦,参数为度数
|
正切,参数为弧度
|
正切,参数为度数
|
另一种使用以角度度量的角的方法是使用早前展示的单位转换函数
和radians()
。不过,使用基于角度的三角函数更好,因为这类方法能避免degrees()
sind(30)
等特殊情况下的舍入偏差。
表 9.8显示的是可用的双曲函数。
表 9.8. 双曲函数
函数 描述 例子 |
---|
双曲正弦
|
双曲余弦
|
双曲切线
|
反双曲正弦
|
反双曲余弦
|
反双曲切线
|
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。