如何从sql结果中删除小数

时间:2015-02-20 22:26:36

标签: sql sql-server tsql

我正在计算总小时/分钟,但我想摆脱小数点,只显示像这样的东西2.00小时或2.5小时等我现在得到这样的东西:2.000000并且只想限制为2位小数仅

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

5 个答案:

答案 0 :(得分:2)

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

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

有用的原始文档:here

答案 1 :(得分: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

答案 2 :(得分:0)

有一些选择。 当不需要舍入时,我更喜欢使用以下

FORMAT(value, 'N2')

SQL - Rounding off to 2 decimal places

how to get 2 digits after decimal point in tsql?

答案 3 :(得分:0)

只需使用ROUND函数,例如:表格中的SELECT ROUND(columnName,decimals)

答案 4 :(得分:0)

您可以使用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 Server将此参数从numeric转换为float和2)方法1使用非确定性表达。