smalldatetime和格式的总和为十进制分钟SQL

时间:2016-02-21 11:35:26

标签: sql sql-server sql-server-2008 ms-access

使用Access数据库,使用SQL命令从中提取数据。我有一个专栏'持续时间'在smalldatetime中格式化,其中包含与电话呼叫持续时间有关的数据。这个数据是这样的列

0/01/1900  12:00:26 AM

这表示持续时间为26秒的呼叫。 (全部从凌晨12:00:00开始向上工作)

我有一个名为' Extension'它标识了手机的用户。

我想运行一个查询,它会显示总持续时间,但按扩展名分组。

到目前为止我的查询是

SELECT (CONVERT(VARCHAR(8),(DATEADD(ms, SUM(DATEDIFF(ms, '00:00:00.000', (CONVERT(VARCHAR(8),Duration,108)))), '00:00:00.000')),108)) as "timetest",
       Extension AS Extension
FROM BrendanTest GROUP BY Extension

这表明:

Timetest    Extension
00:12:00    117
00:06:00    118

这是正确的。

但是,我想格式化结果,以十进制分钟显示,例如

00:04:56

会变成

4.93

有没有办法可以做到这一点?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

假设'00:04:56'的格式为HH:MM:SS,您可以尝试使用以下内容将其转换为十进制格式:

 SELECT PARSENAME(REPLACE('00:04:56',':','.'),3) * 60 --Convert the hours to minutes
        + PARSENAME(REPLACE('00:04:56',':','.'),2) --Add converted hours to minutes
        + CONVERT(FLOAT, LEFT((CONVERT(INT,(PARSENAME(REPLACE('00:04:56',':','.'),1)))/0.6),2))/100 -- convert to decimal format