Pivot Table 不会求和 SQL 时间类型

Pivot Table won't sum SQL Time type

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

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

当我在 Excel 中创建数据透视表 Table 以获取座席登录所花的总时间时,Excel 不会对时间字段求和,它可以计算它,但不是总和或平均值。在 Sum 和 Average 中给我 0,但在 Count 中它显示 24(24 小时间隔)。

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

有什么建议吗?

将 csv 文件导入 MS Access 并在导入过程中 select 适当的类型(我假设 long int 应该可以工作),保存数据库。打开 excel 并导入 access 数据库。当 excel 给我带来烦人的格式问题时,Access 通常是我的首选。

您是否尝试过通过查询在 SQL 中转换数据?

所以这就是我最终为可能 运行 遇到与我相同问题的人所做的事情:

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

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

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

Login_Time = Login_Time_Secs/(60*60*24)

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

完成!现在我 Excel 中的 Pivot Table 可以 Sum/Average 每个员工的登录时间。

这不需要我更改 SQL 数据源(这会很麻烦),它只是将视图查询更改为 Pivot Table 连接的位置。

我希望这对某人有所帮助。