【问题标题】:How to convert Time to Decimal in SQL with an integer如何使用整数在 SQL 中将时间转换为小数
【发布时间】:2012-11-29 00:07:52
【问题描述】:

我在将时间转换为十进制时遇到了一些问题...

基本上我使用了 DATEDIFF 来识别两个日期和时间之间的小时和分钟。这会产生 5.45 的结果,但是我希望得到 5.75 的结果。

select RTRIM(DATEDIFF(second, startdate, enddate)/3600)+'.'
+ RIGHT('0'+RTRIM((DATEDIFF(second, startdate, enddate) % 3600)/60),2)
from time

我尝试了一些方法,但我认为问题在于这不是整数,这就是我无法转换分钟数的原因。

【问题讨论】:

  • 这似乎不像上面的线程的重复,因为该线程谈论“全天差异”,而上面的问题是关于格式化“小时和分钟差异”。

标签: sql sql-server time decimal


【解决方案1】:

获取以分钟为单位的时差,然后除以 60,这将把小时放在小数分隔符之前和分钟之后:

datediff(minute, startdate, enddate) / 60.0

【讨论】:

    【解决方案2】:
    Select DATEDIFF(second,  startdate, enddate)/3600.0
    

    【讨论】:

      【解决方案3】:

      this answer 中所述,“取DateDiff 以秒为单位,然后除以86400.0。需要小数点。”

      【讨论】:

      • 这会返回像 this answer 这样的天数,但听起来他想要小时和分钟。
      猜你喜欢
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2012-09-16
      • 2021-07-11
      • 2019-02-16
      • 1970-01-01
      • 2010-10-31
      相关资源
      最近更新 更多