变化的时间来获得不同

时间:2017-10-19 14:59:34

标签: sql sql-server-2005

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

以下是包含每个值的varchar列:

  • ProcSchedTime(1319),即13:19
  • PtEntersRoomTime(0930),即09:30

所以它会是这样的:ProcSchedTime - PtEntersRoomTime = 221(分钟 ) 我想结果将是221分钟,而不是389。

SQL 2005在这里。

我很抱歉这个混乱。

拜托,谢谢!

3 个答案:

答案 0 :(得分:1)

您可以将其设置为日期时间,将其投射到日期时间,然后使用DateDiff

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

STUFF功能只是在中间添加一个冒号。

答案 1 :(得分:0)

获得分钟差异:

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

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

希望它不会抛出类型错误

答案 2 :(得分:0)

这将从表中获取字段

.apply