floor
函数
适用于: Databricks SQL Databricks Runtime 10.4 LTS 及更高版本
返回不大于 expr
的最大数,向下舍入到相对于小数点的 targetScale
位数。
语法
floor(expr [, targetScale])
参数
expr
:一个计算结果为数字的表达式。targetScale
:大于-38
的可选 INTEGER 字面量,指定小数点后要向下舍入的位数。
返回
如果未指定 targetScale
:
- 如果
expr
为DECIMAL(p, s)
,则返回DECIMAL(p - s + 1, 0)
。 - 其余情况下,则返回 BIGINT。
如果指定了 targetScale
,且 expr
为:
TINYINT
返回
p = max(3, -targetScale + 1)
的DECIMAL(p, 0)
。SMALLINT
返回
p = max(5, -targetScale + 1)
的DECIMAL(p, 0)
。INTEGER
返回
p = max(10, -targetScale + 1))
的DECIMAL(p, 0)
。BIGINT
返回
p = max(20, -targetScale + 1))
的DECIMAL(p, 0)
。FLOAT
返回
p = max(14, -targetScale + 1))
和s = min(7, max(0, targetScale))
的DECIMAL(p, s)
DOUBLE
返回
p = max(30, -targetScale + 1))
和s = min(15, max(0, targetScale))
的DECIMAL(p, s)
DECIMAL(p_in, s_in)
返回
p = max(p_in - s_in + 1, -targetScale + 1))
和s = min(s_in, max(0, targetScale))
的DECIMAL(p, s)
如果 targetScale
为负数,则舍入到小数点左侧的 -targetScale
位数。
默认值 targetScale
为 0,将向下舍入到相邻的更小整数。
示例
> SELECT floor(-0.1);
-1
> SELECT floor(5);
5
> SELECT floor(3345.1, -2);
3300
> SELECT floor(-12.345, 1);
-12.4