Excel数据透视表的SQL日期格式

时间:2013-08-02 13:19:03

标签: sql excel date pivot pivot-table

我在Excel中的数据透视表中提取数据,但Excel无法识别日期格式。

我正在使用..

CONVERT(date, [DateTimeSelected]) AS [Search Date]

在我的查询输出中显示为 2013-08-01

当它通过我的SQL连接进入我的Excel数据透视表时,它看起来是相同的,但过滤器不能识别为日期。

在这里,您可以看到Excel如何将其视为左侧文本,右侧是Excel在将其识别为日期时的样子。

enter image description here

有什么想法吗?

谢谢; - )

尝试了所有这些,但只有原始的B.Depart(日期时间)作为日期出现,Excel中没有任何转换的列作为日期读取...

我获得了大量格式,但Excel必须不喜欢转换日期?

 B.Depart AS 'Holiday Date time',
 CONVERT(VARCHAR(10), B.Depart,103) AS 'Holiday Date',
 DATENAME(weekday, B.Depart) AS 'Holiday Day Name',
 CONVERT(CHAR(2), B.Depart, 113) AS 'Holiday Day',
 CONVERT(CHAR(4), B.Depart, 100) AS 'Holiday Month',
 CONVERT(CHAR(4), B.Depart, 120) AS 'Holiday Year',
 CONVERT(VARCHAR(10),B.Depart,10) AS 'New date',
 CONVERT(VARCHAR(19),B.Depart),
 CONVERT(VARCHAR(10),B.Depart,10),
 CONVERT(VARCHAR(10),B.Depart,110),
 CONVERT(VARCHAR(11),B.Depart,6),
 CONVERT(VARCHAR(11),B.Depart,106),
 CONVERT(VARCHAR(24),B.Depart,113)

5 个答案:

答案 0 :(得分:7)

似乎cast(convert(char(11), Bo.Depart, 113) as datetime)有效..

答案 1 :(得分:2)

我发现对我来说唯一的答案是将SQL数据设置为Table的源,而不是数据透视表,然后从该表构建数据透视表。

那是我能够将数字格式应用到数据透视表行标签,这使我能够在图表上格式化日期。

答案 2 :(得分:0)

使用Excel 2010时遇到了同样的问题。 我的解决方案是将SQL Server的连接类型指定为' SQL Server Native Client 10.0'而不是' SQL Server' (可在数据连接指南中的高级/其他选项中找到)。使用它可以很好地连接到包含标准日期格式列的sql server表。

答案 3 :(得分:0)

重要的是要注意,如果首次将日期识别为文本,然后然后将查询更改为其中一个建议,则必须告知Excel不保留旧文本数据透视表缓存中的格式化值(默认情况下,数据透视表保留后台缓存中每个字段中的旧值,即使它们不在当前返回的数据中)。否则,由于第一个值仍在缓存中(即使它们不再存在于实时数据中),整个字段也会被识别为文本。

例如,我有一个现有的表,我遇到了这个问题。我更改了查询以使用Mike的帖子

cast(convert(char(11),Bo.Depart,113)as datetime)

,但它实际上并没有导致Excel将其识别为日期,直到重置数据透视表缓存中保留的项目为止。

要更改数据透视表保留缓存中项目的方式, 1.右键单击表 2.选择“数据透视表选项”' 3.在'数据'选项卡,更改下拉菜单中的'每个字段要保留的项目数量'到'无'。

当切片器按钮显示数据集中不再存在的值时,这也很有用。

答案 4 :(得分:0)

您可以在SQL表中使用SmallDatetime格式,并且可以使用。永远不要将日期转换为varchar。