您如何有条件地漂浮漂浮物?

时间:2019-04-10 17:31:49

标签: mysql sql

我正在编写报表生成软件使用的查询。

其中一部分是查询完成项目所需的时间。我们将此记录为两位十进制浮点数,以便可以估算到四分之一小时。

但是,如果我们在报表中使用它,而我们记录的小时数是8.00,我想对其进行查询并设置其格式,使8.00仅为8。但是任何小时的小数点后,例如8.25,应该保持为8.25。我该如何工作?

hours                     Queried Result
======    -> My Query ->  ==============
8.00                      8
8.25                      8.25

我正在使用MySQL 5.6

3 个答案:

答案 0 :(得分:1)

您可以使用REPLACE()函数删除.00

REPLACE(hours, '.00', '') AS hours

答案 1 :(得分:1)

您可以将其转换为字符串,并检查最右边的2个字符,如果它们是'00',则将它们修剪掉。

 SELECT TRIM(TRAILING '.00' FROM CAST(column_name AS VARCHAR));

答案 2 :(得分:0)

SELECT REPLACE(Round(8.00),'.00','');

我将给出更多示例,以便您清除逻辑:

MySQL ROUND()将指定为参数的数字向上舍入为指定为另一个参数的数字。

语法:

ROUND(N,[D]);

“ N” 处四舍五入到小数点后D位。 并且'D'表示N将舍入到小数点后位数。

示例1:-

SELECT ROUND(4.43);

输出:-

 4

上面的MySQL语句将舍入给定的数字4.43。没有定义小数位,因此默认十进制值为0。

示例2:-

SELECT ROUND(-4.53);

输出:-

-5

上面的MySQL语句将舍入给定的数字-4.53。没有定义小数位,因此默认十进制值为0。