如何去掉 sql 结果中的小数

how to get rid off decimals from sql results

我正在计算总数 hours/minutes 但我想去掉小数点,只显示类似 2.00 小时或 2.5 小时等的内容。我现在得到这样的结果:2.000000 并且只想仅限 2 位小数。

 select DATEDIFF(minute, Min(FullDatetime), Max(FullDatetime)) / 60.0 as hours
  from  myTable
  where userid = 123

有几个选项。 当不需要舍入时,我更喜欢使用以下内容

FORMAT(value, 'N2')

SQL - Rounding off to 2 decimal places

how to get 2 digits after decimal point in tsql?

您可以通过四舍五入来完成,但最简单的方法是使用 FORMAT() 格式化输出。

 select FORMAT(DATEDIFF(minute, Min(FullDatetime), Max(FullDatetime)) / 60.0, 'N2') as hours
  from  myTable
  where userid = 123

有用的原始文档:here

只需使用 ROUND 函数,例如:SELECT 来自 table

的 ROUND(columnName,decimals)

您可以使用 STRCONVERT 函数:

DECLARE @v NUMERIC(19, 6)
SET     @v = 2.189189

SELECT STR(@v, 19, 2) AS Method1_Result_VARCHAR, CONVERT(NUMERIC(15, 2), @v) AS Method2_Result_NUMERIC
/*
Method1_Result_VARCHAR Method2_Result_NUMERIC
---------------------- ----------------------
               2.19    2.19
*/

注意:STR 函数的第一个参数是 float 类型,这意味着 1) SQL 服务器会将此参数从 numeric 转换为 float 和 2)方法 1 使用非确定性表达式。

尝试使用

 cast('values' as decimal(18,2))   --2 decimal place.

 select Cast((DATEDIFF(minute, Min(FullDatetime), Max(FullDatetime)) / 60.0 as hours)as decimal(18,2))
  from  myTable
  where userid = 123