如何在SQL Server 2005中从两个日期时间值相减并得到小时数

6

我有两个日期值:08/6/2009 00:00:0010/6/2009 23:59:59

在 SQL Server 2005 查询中,如何获取小时差异?


你的标题有些误导性。你是在问如何使用SQL Server 2005的T-SQL计算时间跨度(以小时为单位)吗? - noesgard
你好,我不完全理解你的意思,但如果你想要以小时为单位获取时间差,你可以使用DATEDIFF()函数来获取时间差,然后将其转换为小时。如果你想要以天为单位获取时间差,可以使用DATEPART()函数来获取天数,然后将天数乘以24即可得到小时数。 祝好, Iordan - IordanTanev
由于似乎 MS SQL Server 不支持 SQL 标准的 INTERVAL 类型,也没有任何近似解决方案,因此我提出的基于它们的任何解决方案都具有有限的价值。在支持标准间隔的情况下,答案更或多或少是微不足道的:CAST((d2 - d1) AS INTERVAL HOUR(9))。您可能需要进行一些更多的转换操作,以将其转换为普通数字而不是 INTERVAL…在我使用的某个系统中,这意味着转换为 char,然后转换为 INTEGER。 - Jonathan Leffler
2个回答

12
SELECT  DATEDIFF(hour, '2009-08-06 00:00:00', '2009-10-06 23:59:59')

---
 71

1
DATEDIFF(HOUR,'08/6/2009 00:00:00','10/6/2009 23:59:59')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接