3

我有不同的数据值(类型),比如10.00or 2.00。我怎样才能只得到它的整数值,所以我想得到10而不是10.002而不是2.00

4

2 回答 2

4

您可以根据自己的意图使用FLOORor函数:TRUNCATE

SELECT FLOOR(1.999)        --  1
SELECT FLOOR(-1.999)       -- -2
SELECT TRUNCATE(1.999, 0)  --  1
SELECT TRUNCATE(-1.999, 0) -- -1
于 2013-08-26T08:18:06.437 回答
2

例如,您可以尝试这样做:

WHERE CONVERT(your_column, SIGNED INTEGER) AS num
FROM 
  table
ORDER BY 
  num;

基于 MySQL 文档 CONVERT() 和 CAST():

CONVERT() 提供了一种在不同字符集之间转换数据的方法。语法是:

CONVERT(expr USING transcoding_name)

在 MySQL 中,转码名称与对应的字符集名称相同。

此外,您还可以使用 ROUND(X)、ROUND(X,D):

将参数 X 舍入到 D 小数位。舍入算法取决于 X 的数据类型。如果未指定,D 默认为 0。D 可以为负数,以使值 X 的小数点左侧的 D 位变为零。

mysql> SELECT ROUND(150.000,2), ROUND(150,2);
+------------------+--------------+
| ROUND(150.000,2) | ROUND(150,2) |
+------------------+--------------+
|           150.00 |          150 |
+------------------+--------------+
于 2013-08-26T08:08:02.467 回答