查询在SQL Server 2008中将Varchar HH:MM转换为整数分钟

时间:2013-03-21 04:53:54

标签: sql sql-server sql-server-2008

我在SQL Server中有一个表,其中有一个列名TimeSpent Datatype Varchar(25)。它基本上将时间存储为HH:MM格式。 根据现在的要求,我希望它能在分钟内给出实际时间,即01:00给我60分01:30 - > 90。 请帮我在SQL Server 2008中编写查询,以便将Varchar(HH:MM)转换为Minutes(整数)。

3 个答案:

答案 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)作为分钟测试