【问题标题】:How to get total number of hours between two dates in sql server?如何获取sql server中两个日期之间的总小时数?
【发布时间】:2011-01-29 07:56:56
【问题描述】:

考虑两个日期2010-03-18 22:30:452010-03-19 03:30:15 ....如何在sql server中获取两个日期之间的小时数和分钟数.....

【问题讨论】:

    标签: sql-server-2005 datetime


    【解决方案1】:

    @codeka 回答了小时部分(来自你的标题),但在你的问题正文中你问了几个小时和分钟,所以这是一种方法

     select DATEDIFF(hh, @date1, @date2) as Hours_Difference,   
        DATEDIFF(mi,DATEADD(hh,DATEDIFF(hh, @date1, @date2),@date1),@date2) as Minutes_Difference
    

    这在第一部分所做的是@codeka 所展示的。它以实际完整小时数为您提供两个日期之间的日期差异。 sql 中的第二项给出了(第一个日期 + 经过的小时数)和第二个日期之间的日期差异(以分钟为单位)。您必须从分钟部分的等式中消除小时数,否则您将获得日期之间的实际分钟数。 Datediff 及其允许的 Datepart 标识符可以在这里研究:
    http://msdn.microsoft.com/en-us/library/ms189794.aspx

    【讨论】:

    • 我看不到 Minutes DIFF 在这里是如何工作的。它看起来在顶部。为什么不简单地使用 DATEDIFF(mi, Date1, Date2)?这对我有用。
    【解决方案2】:

    你想要DATEDIFF函数:

    SELECT DATEDIFF(hh, @date1, @date2)
    

    【讨论】:

    【解决方案3】:

    William Salzmananswer 的问题在于,如果第一次不在时间,它会返回奇怪的答案。所以 10:30 到 12:00 是 2 小时 -30 分钟。

    如果这不是你想要的,那么这会给你 1 小时 30 分钟:

    select 
        CONVERT(int,DATEDIFF(mi, @date1, @date2) / 60) as Hrs_Difference,
        CONVERT(int,DATEDIFF(mi, @date1, @date2) % 60) as Mins_Difference
    

    【讨论】:

      【解决方案4】:

      DATEDIFF 功能将解决您获取小时差异的问题。

      你可以这样检查:

      select DATEDIFF(hh, getdate()-1, GETDATE()) HoursDifference
      

      它会给你24小时的结果

      谢谢

      【讨论】:

        【解决方案5】:

        似乎有多种方法可以回答这个问题,但对我来说,我一直相信从小处着手的概念——比如获得整体价值,然后将其转化为答案你想要的。

        假设date2 大于date1

        一个简单的数学差乘以一天中的 24 小时有效:

        CAST(date2 - date1 as NUMERIC(18,4)) * 24.00 AS [HrsDiff]
        

        或者使用 Will 的回答,用 [min] 表示分钟:

        CAST(DATEDIFF(mi, date1, date2) AS NUMERIC(18,4)) / 60 AS [HrsDiff]
        

        所以总分钟数除以 60 得到小时数。

        第一个选项给你一个大的小数,而第二个选项将它四舍五入到最接近的小数。

        【讨论】:

          猜你喜欢
          • 2011-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-18
          • 1970-01-01
          • 1970-01-01
          • 2014-06-11
          相关资源
          最近更新 更多