将SQL查询结果截断为整数值

3

我有不同的数据值(类型),例如10.002.00。如何只获取其整数值,以便我想要获取10而不是10.002而不是2.00


1
MySQL 的 round 方法怎么样?http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_round - Mirco Widmer
2个回答

4
您可以根据您的意图使用 FLOORTRUNCATE 函数:
SELECT FLOOR(1.999)        --  1
SELECT FLOOR(-1.999)       -- -2
SELECT TRUNCATE(1.999, 0)  --  1
SELECT TRUNCATE(-1.999, 0) -- -1

你的示例也可以适用于他/她的目的!+1 - Ilia

2
例如,您可以尝试这样做:
WHERE CONVERT(your_column, SIGNED INTEGER) AS num
FROM 
  table
ORDER BY 
  num;

基于MySQL文档中CONVERT()和CAST()函数的英译中:

基于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 |
+------------------+--------------+

转换可能会将数字四舍五入,这可能是不可取的。 - Salman A
这是正确的,可能不太理想。要看具体情况。 - Ilia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接