直接从 SQL Server 中提取的日期未被识别为数据透视表中的日期

直接从 SQL Server 中提取的日期未被识别为数据透视表中的日期

我的数据透视表从带有日期列的外部数据源中提取数据。Excel 不会将此列视为日期,并且“设置单元格格式”选项面板不会更改日期的显示方式。单元格数据是左对齐的,表明是字符串而不是日期。我尝试在基表中使用 cast(myvar as date) 和 convert(varchar, myvar, 101) 以及 convert(varchar, myvar, 1),但 Excel 均未将其识别为日期。

如果该列被识别为日期,我可以按周和月分组。我知道如果我无法解决这个问题,下一步就是在表格中添加每个日期的周和月的列,但在执行此操作之前,我想再尝试格式化该列一次。

答案1

尝试将您的日期转换为日期时间。

SQL Server 的日期在内部表示为 3 字节整数,而日期时间是 8 字节,并且可能是浮点数。Excel 使用双精度来表示日期/时间,因此 SQL Server 的日期时间格式可能比日期更能映射。

答案2

尝试使用 SQL 代码作为数据透视表的来源,而不是位于 SQL Server 中的表或查询。这样您的 Cast() 语句可能会更有效。

  1. 点击数据透视表
  2. 单击数据透视表工具>选项>更改数据源(箭头)>连接属性
  3. 单击“定义”
  4. 将命令类型更改为“SQL 查询”
  5. 将您的 SQL 语句粘贴或键入到命令文本区域中。

我假设您使用的是 Excel 2007。Excel 2003 采用类似的方法,只是获取方法不同。

答案3

使用带有样式的转换函数120,这是 ISO 日期格式,Excel 应该识别它。

相关内容