我在SQL Server中有一个表,其中有一个列名TimeSpent Datatype Varchar(25)
。它基本上将时间存储为HH:MM
格式。
根据现在的要求,我希望它能在分钟内给出实际时间,即01:00给我60分01:30 - > 90。
请帮我在SQL Server 2008中编写查询,以便将Varchar(HH:MM)转换为Minutes(整数)。
答案 0 :(得分:11)
尝试
SELECT LTRIM(DATEDIFF(MINUTE, 0, TimeSpent))
FROM yourtable
给出
| TIMESPENT |
-------------
| 00:12 |
| 01:05 |
| 10:00 |
输出:
| MINUTES |
-----------
| 12 |
| 65 |
| 600 |
这是 SQLFiddle
答案 1 :(得分:1)
这将解决您的问题。请参阅SQLFiddle
select cast(left(TimeSpent, charindex(':',TimeSpent,0)-1) as int)*60+
cast(right(TimeSpent, len(TimeSpent)-charindex(':',TimeSpent, 0)) as int)
from test
答案 2 :(得分:0)
选择前1个(substring(CONVERT(VARCHAR(5),TimeSpent,108),1,2)* 60 + substring(CONVERT(VARCHAR(5),TimeSpent,108),4,2)作为分钟测试