【问题标题】:Convert time from seconds to hours, with rounding通过四舍五入将时间从秒转换为小时
【发布时间】:2014-07-17 19:47:39
【问题描述】:

我需要用 2 位小数四舍五入将时间从秒转换为小时 PeriodLength 包含以秒为单位的时间。

(c.PeriodLength)/3600. as Time

以小时为单位返回时间,但结果类似于1.250000 我需要它是1.25

【问题讨论】:

  • 您使用的是哪个数据库?
  • 你在找ROUND()
  • 我正在使用 Microsoft SQL Server Management Studio 2012 和团队基础服务器数据库。
  • “Microsoft SQL Server Management Studio 2012”不是 DBMS,它是一个客户端工具。但由于只能连接到 Microsoft SQL Server,即您使用的 DBMS。

标签: sql sql-server time data-conversion


【解决方案1】:

使用标准 SQL,您可以将其转换为小数。比如:

select cast(c.PeriodLength / (60.00*60) as decimal(6, 2));

也有特定于数据库的解决方案,但你不指定数据库。

【讨论】:

  • 此代码四舍五入,将小时 15 分钟改为 1.00
  • 有些数据库对两个整数进行整数除法。解决方法是使用带小数点的数字常量。
【解决方案2】:
SET value = ROUND(value,2)

请注意,这通常用于统计目的,而不是货币或时间。但是,它应该可以满足您的需求。

【讨论】:

  • 如何在选择语句中使用它? (Round((c.PeriodLength)/3600)2) 不起作用
  • select round((c.PeriodLength/3600), 2) as PeriodHrs 应该会带你到那里。
  • 此代码四舍五入到最接近的整数。如果我把 round((c.PeriodLength/3600.), 2) 作为 PeriodHrs 然后它返回 1.25000
猜你喜欢
  • 2017-12-26
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 2020-03-23
  • 1970-01-01
相关资源
最近更新 更多