数据透视表不会对SQL时间类型求和

时间:2015-09-03 14:23:03

标签: time sql-server-2008-r2 pivot-table excel-2013

我还没有能够在整个互联网上找到答案。这是我的问题:

我有一个具有时间类型字段的SQL视图,其中包括员工保持登录系统的时间。

当我在Excel中创建数据透视表以获取代理已登录的总时间时,Excel不会对时间字段求和,它可以对其进行计数,但不能计算总和或平均值。在Sum和Average中给出0,但在Count中它显示24(24小时间隔)。

我尝试过多次转换/强制转换,将时间数据转换为Excel理解的格式(似乎认为它是varchar / string类型),但无济于事。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

将csv文件导入MS Access并在导入期间选择适当的类型(long int应该可以正常工作),保存数据库。打开excel并导入访问数据库。当excel为我提供恼人的格式问题时,访问通常是我的选择。

答案 1 :(得分:0)

您是否尝试通过查询在SQL中透视数据?

答案 2 :(得分:0)

所以这就是我为了那些可能遇到同样问题的人而做的最终结果:

首先在我的SQL查询中,我使用以下内容将时间数据转换为整数(以秒为单位):

(DATEPART(hh, Login_Time) * 60 * 60) + (DATEPART(MINUTE, Login_Time) * 60) + DATEPART(s, Login_Time) as Login_Time_Secs

然后在Excel的我的数据透视表中,我创建了一个计算字段,通过将秒转换为Excel时间来执行相反的计算:

Login_Time = Login_Time_Secs/(60*60*24)

将Login_Time字段格式化为小时格式 [h]:mm

完成!现在我在Excel中的数据透视表可以对每位员工记录的时间进行求和/平均。

这不需要我更改我的SQL数据源(这将是一个很大的麻烦),它只将View Query更改为数据透视表连接的位置。

我希望这有助于某人。