Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
smalldatetime与十进制分钟SQL格式之和_Sql_Sql Server_Sql Server 2008_Ms Access - Fatal编程技术网

smalldatetime与十进制分钟SQL格式之和

smalldatetime与十进制分钟SQL格式之和,sql,sql-server,sql-server-2008,ms-access,Sql,Sql Server,Sql Server 2008,Ms Access,使用Access数据库,使用SQL命令从中提取数据。我有一个用smalldatetime格式化的“Duration”列,其中包含与电话通话持续时间相关的数据。数据是这样的 0/01/1900 12:00:26 AM 这表示通话持续时间为26秒。(全部在上午12:00:00开始,向上工作) 我有一个名为“分机”的栏目,用来识别手机的用户 我想运行一个查询,显示总持续时间,但按扩展分组 到目前为止,我的疑问是 SELECT (CONVERT(VARCHAR(8),(DATEADD(ms, SUM

使用Access数据库,使用SQL命令从中提取数据。我有一个用smalldatetime格式化的“Duration”列,其中包含与电话通话持续时间相关的数据。数据是这样的

0/01/1900  12:00:26 AM
这表示通话持续时间为26秒。(全部在上午12:00:00开始,向上工作)

我有一个名为“分机”的栏目,用来识别手机的用户

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

到目前为止,我的疑问是

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

我有办法做到这一点吗?非常感谢你的帮助

假设“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

假设“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

当您执行select distinct extension from BRANDANTEST时,您得到了什么?代码现在正在@Sagi工作。只需要知道如何将其转换为十进制分钟数。当您执行select distinct extension from BRANDANTEST时,您会得到什么?代码立即在@Sagi中运行。只需要知道如何将其转换为十进制分钟。