我还没有能够在整个互联网上找到答案。这是我的问题:
我有一个具有时间类型字段的SQL视图,其中包括员工保持登录系统的时间。
当我在Excel中创建数据透视表以获取代理已登录的总时间时,Excel不会对时间字段求和,它可以对其进行计数,但不能计算总和或平均值。在Sum和Average中给出0,但在Count中它显示24(24小时间隔)。
我尝试过多次转换/强制转换,将时间数据转换为Excel理解的格式(似乎认为它是varchar / string类型),但无济于事。
有什么建议吗?
答案 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更改为数据透视表连接的位置。
我希望这有助于某人。