【问题标题】:How to remove decimal places from SQL 2005 query result?如何从 SQL 2005 查询结果中删除小数位?
【发布时间】:2016-11-03 10:12:10
【问题描述】:
SQL version = 2005.

以下查询产生结果 2.000000。我希望它只显示 2 个。

如何从结果中删除小数位?

SELECT ROUND(SUM([Total Order (mins)])/60, 0) as [Total Cutting Time (Hours) Saw 50] FROM [IT_REPORTS].[dbo].[cutting_data] WHERE [AssignedCuttingDate] = DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) and [Saw No] = '50'

【问题讨论】:

  • 选择转换(int,2.000000)
  • 感谢您的回复,您能否使用上面的查询准确地输入我将如何做到这一点?
  • 这里的问题是如果你把它转换成INT,它会给你整数... Convert(int, SUM([Total Order (mins)])/60) as [Total Cutting Time ( Hours) Saw 50] ...但是当您下次运行它并且有一些小数位数字时,它将不会显示...

标签: sql sql-server-2005


【解决方案1】:

round() 的问题是 value 发生了变化,但不一定是 type。因此,正如您所注意到的,您可能会得到一堆尾随零。

我的建议是转换为小数(或整数):

SELECT CAST(SUM([Total Order (mins)])/60 as DECIMAL(10, 0)) as [Total Cutting Time (Hours) Saw 50]
FROM [IT_REPORTS].[dbo].[cutting_data]
WHERE [AssignedCuttingDate] = DATEADD(day, DATEDIFF(day, 0, getdate()), 0) AND
      [Saw No] = '50';

您也可以使用str() 转换为字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2016-03-16
    • 2022-11-29
    • 1970-01-01
    • 2019-01-01
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多