首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何计算SQL Server中两个日期之间的小时差(小数)?

如何计算SQL Server中两个日期之间的小时差(小数)?
EN

Stack Overflow用户
提问于 2009-11-20 22:01:18
回答 6查看 267.9K关注 0票数 93

我必须计算SQL Server2008中两个日期之间的小时差(decimal类型)。

我在MSDN上找不到任何有用的技术来将datetime转换为decimal。

有人能帮我吗?

更新:

为了清楚起见,我也需要小数部分(因此是decimal类型)。所以从9:00到10:30应该返回1.5。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-20 22:10:02

DATEDIFF(hour, start_date, end_date)将为您提供start_dateend_date之间跨越的小时数。

如果您需要小数小时数,可以使用更高分辨率的DATEDIFF并将结果除以:

代码语言:javascript
复制
DATEDIFF(second, start_date, end_date) / 3600.0

DATEDIFF的文档可以在MSDN上找到:

http://msdn.microsoft.com/en-us/library/ms189794%28SQL.105%29.aspx

票数 175
EN

Stack Overflow用户

发布于 2009-11-20 22:09:52

DATEDIFF,但请注意,它返回一个整数,因此,如果您需要小数小时数,请使用以下代码:-

代码语言:javascript
复制
CAST(DATEDIFF(ss, startDate, endDate) AS decimal(precision, scale)) / 3600
票数 10
EN

Stack Overflow用户

发布于 2018-04-12 05:12:47

使用Postgres时,我遇到了DATEDIFF的问题,但在这方面取得了成功:

代码语言:javascript
复制
  DATE_PART('day',(delivery_time)::timestamp - (placed_time)::timestamp) * 24 + 
  DATE_PART('hour',(delivery_time)::timestamp - (placed_time)::timestamp) +
  DATE_PART('minute',(delivery_time)::timestamp - (placed_time)::timestamp) / 60

这给了我一个类似"14.3“的输出

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1770594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档