VARCHAR 获取差异的时间

VARCHAR TIME TO GET THE DIFFERENCE

我已经花了一天时间寻找合适的 SQL 脚本,只是为了获得 2 个 varchar 时间的差异。

以下是具有每个值的 varchar 列:

所以它将是这样的:ProcSchedTime - PtEntersRoomTime = 221(分钟 ) 我希望结果在几分钟内是 221,而不是 389。

SQL 这里是 2005 年。

对于造成的混乱,我们深表歉意。

拜托,谢谢!

要获得分钟数的差异:

(13 - 09) * 60 + (19 - 30)

select (left(varchartime1,
             2
            ) - left(varchartime2,
                     2
                    )
       ) * 60 + (right(varchartime1,
                       2 
                      ) - right(varchartime2,
                                2
                               )
                )

希望它不会抛出类型错误

你可以让它看起来像一个日期时间,将它转换为一个日期时间,然后使用 DateDiff

SELECT DATEDIFF(MINUTE,cast(STUFF('1319', 3, 0, ':') as datetime) , cast(STUFF('0930', 3, 0, ':') as datetime))

STUFF 函数只是在中间添加了一个冒号。

这将从 table,

中获取字段
SELECT DATEDIFF(MINUTE, LEFT(PtEntersRoomTime, 2) + ':' + RIGHT(PtEntersRoomTime, 2)
                      , LEFT(ProcSchedTime, 2) + ':' + RIGHT(ProcSchedTime,2)
               ) AS [TimeDifference]
  FROM TableName