【问题标题】:Truncate results from SQL to integer value将 SQL 中的结果截断为整数值
【发布时间】:2013-08-28 15:59:42
【问题描述】:

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

【问题讨论】:

标签: mysql sql integer rounding floor


【解决方案1】:

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

SELECT FLOOR(1.999)        --  1
SELECT FLOOR(-1.999)       -- -2
SELECT TRUNCATE(1.999, 0)  --  1
SELECT TRUNCATE(-1.999, 0) -- -1

【讨论】:

  • 你的例子,也可以为他/她的目的服务! +1
【解决方案2】:

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

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

Based on MySQL Documentation CONVERT() and CAST():

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

CONVERT(expr USING transcoding_name)

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

Besides for you also could work 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 |
+------------------+--------------+

【讨论】:

  • Convert 可以四舍五入。这可能是不可取的。
  • 这是真的,可能不受欢迎。视情况而定。
猜你喜欢
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 2019-06-12
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多