首页 > 解决方案 > 如何在两次行中找到时差

问题描述

SQL Server :我需要在格式中找到两次之间的差异,HH:MM并且两列都具有time数据类型:

SELECT DATEDIFF(MINUTE, sh.ToTime, sh.FromTime)
FROM ShiftTimes sh 
INNER JOIN StdBreaksInShifts sb ON sb.ShiftId = sh.ShiftId 

桌子:

Fromdate                todate
----------------------------------------
08:15:00.0000000        16:30:00.0000000

谁能建议如何做到这一点?

标签: sql-serverstored-proceduressql-server-2012

解决方案


可以使用CONVERTwith style 来获取对应格式的一部分。像这样的东西:

DECLARE @FromTime TIME = '08:15:00.0000000'
       ,@ToTime TIME = '16:30:00.0000000';

SELECT @FromTime
      ,@ToTime
      ,CONVERT(VARCHAR(5), DATEADD(minute, DATEDIFF(minute, @FromTime, @ToTime), 0), 114)

08:15:00.0000000 16:30:00.0000000 08:15


推荐阅读