在 PostgreSQL 中,你可以使用多种方法来对数字进行下取整(即向下舍入),也就是将数字舍入到不大于它的最小整数。这里有几种常用的方法:
- 使用 FLOOR() 函数
FLOOR() 函数会将数字向下舍入到最接近的整数。
SELECT FLOOR(123.456); -- 结果为 123 2. 使用 INT 类型转换
将数字转换为 INT 类型也会实现下取整的效果,因为 PostgreSQL 会自动将浮点数转换为最接近的整数。
SELECT CAST(123.456 AS INT); -- 结果为 123
或者使用 :: 操作符进行类型转换:
SELECT 123.456::INT; -- 结果为 123 3. 使用 ROUND() 函数(向下舍入)
虽然 ROUND() 通常用于四舍五入,但你也可以通过指定第二个参数为负数来让它表现得像向下舍入。例如,ROUND(number, -1) 会将数字舍入到最接近的十位整数。
SELECT ROUND(123.456, -1); -- 结果为 120 (实际上是四舍五入到了最接近的十位)
如果你确实需要严格的向下舍入到最接近的整数,可以使用 FLOOR() 或类型转换。
- 使用 DIV 操作符(适用于整数除法)
如果你知道结果应该是整数,并且想要通过除法来实现下取整,可以直接使用除法,因为任何非零数除以1都会自动下取整。
SELECT 123.456 / 1; -- 结果为 123.0,但如果你想要整数结果,可以这样做: SELECT FLOOR(123.456); -- 或者使用 CAST 或者 INT 类型转换 结论
对于大多数情况,使用 FLOOR() 或类型转换(CAST 或 ::)是最直接和清晰的方法来实现下取整。如果你需要更精确地控制到哪个十位、百位等舍入,可以使用 ROUND() 并配合负数参数,尽管在这种情况下,FLOOR() 是更直接的选择。
注意:本文归作者所有,未经作者允许,不得转载