考虑两个日期2010-03-18 22:30:45
和2010-03-19 03:30:15
....如何获取sql server中两个日期之间的小时数和分钟数.....
答案 0 :(得分:16)
@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
答案 1 :(得分:4)
您需要DATEDIFF功能:
SELECT DATEDIFF(hh, @date1, @date2)
答案 2 :(得分:1)
William Salzman 的 answer 的问题在于,如果第一次不是在整点,它会返回奇怪的答案。所以 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
答案 3 :(得分:0)
DATEDIFF函数将解决您的时差问题。
您可以将其检查为:
select DATEDIFF(hh, getdate()-1, GETDATE()) HoursDifference
它将为您提供24小时的结果
谢谢