我必须计算SQL Server2008中两个日期之间的小时差(decimal类型)。
我在MSDN上找不到任何有用的技术来将datetime转换为decimal。
有人能帮我吗?
更新:
为了清楚起见,我也需要小数部分(因此是decimal类型)。所以从9:00到10:30应该返回1.5。
发布于 2009-11-20 22:10:02
DATEDIFF(hour, start_date, end_date)
将为您提供start_date
和end_date
之间跨越的小时数。
如果您需要小数小时数,可以使用更高分辨率的DATEDIFF
并将结果除以:
DATEDIFF(second, start_date, end_date) / 3600.0
DATEDIFF
的文档可以在MSDN上找到:
http://msdn.microsoft.com/en-us/library/ms189794%28SQL.105%29.aspx
发布于 2009-11-20 22:09:52
DATEDIFF,但请注意,它返回一个整数,因此,如果您需要小数小时数,请使用以下代码:-
CAST(DATEDIFF(ss, startDate, endDate) AS decimal(precision, scale)) / 3600
发布于 2018-04-12 05:12:47
使用Postgres时,我遇到了DATEDIFF的问题,但在这方面取得了成功:
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“的输出
https://stackoverflow.com/questions/1770594
复制相似问题