VARCHAR 获取差异的时间
VARCHAR TIME TO GET THE DIFFERENCE
我已经花了一天时间寻找合适的 SQL 脚本,只是为了获得 2 个 varchar 时间的差异。
以下是具有每个值的 varchar 列:
- ProcSchedTime(1319) 即 13:19
- PtEntersRoomTime(0930) 即 09:30
所以它将是这样的: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
我已经花了一天时间寻找合适的 SQL 脚本,只是为了获得 2 个 varchar 时间的差异。
以下是具有每个值的 varchar 列:
- ProcSchedTime(1319) 即 13:19
- PtEntersRoomTime(0930) 即 09:30
所以它将是这样的: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