无法在 SQL Server Reporting Services 报表生成器中格式化日期时间

Cannot format datetime in SQL Server Reporting Services report builder

None 之前关于这个主题的 questions/answers 对我有用;我有点困惑。我继承了我的第一个 SQL Server Reporting Services Report Builder 报告,并接受了一项看似简单的任务,即将日期更改为日期时间。正如您在下面看到的,我已经成功修改了基础查询并返回了日期时间类型,但我无法在报告中对它们进行格式化。

我的查询结果:

我的第一直觉是,只需将列 (FirstProcessorCompletedDate) 的类型从 date 更改为 datetime 就会提示报告工具显示日期和时间,但没有成功。所以...

以前使用报表构建工具的经验告诉我要获取对该字段的现有引用并将其替换为该字段的格式语句,有点像这样:

不幸的是,无论我在此处添加什么,在执行时都会被报表生成器解释为文字。是的,我确实在格式声明前尝试了一个“=”。这只是我尝试过的一种变体。

显然这不是我习惯的旧 SSRS 类型的报表构建。我用谷歌搜索了这个问题并搜索了 Stack Overflow 但没有找到答案。我看过一些计算字段,但这似乎有些矫枉过正。不想计算什么,直接格式化一下

我错过了什么?

不要修改基础查询,那是你犯的第一个错误。 date(time) 数据类型没有格式,它们是二进制值,您的表示层会将其更改为可读格式。在 SQL 服务器中更改 date(time) 数据类型的 "format" 后,它 不再是 date(time) 数据类型,它是 varchar,而 Format 不适用于 varchar。您如何将 varchar'Hello, my name is Jane.' 格式化为样式 MM/dd/yyyy hh:mm tt?你不能,这同样适用于表示日期的字符串。

Return 你的列的值作为 datetime 到 SSRS(不要转换它),然后更改 格式 属性 中的单元格(选中单元格后按 F4,将打开单元格的 属性 窗格)并将格式更改为 MM/dd/yyyy hh:mm tt.