【问题标题】:Cannot format datetime in SQL Server Reporting Services report builder无法在 SQL Server Reporting Services 报表生成器中格式化日期时间
【发布时间】:2019-05-29 17:03:38
【问题描述】:

以前关于这个主题的问题/答案都不适合我;我有点困惑。我继承了我的第一个 SQL Server Reporting Services 报表生成器报表,并被赋予了将日期更改为日期时间的看似简单的任务。正如您在下面看到的,我已经成功地修改了基础查询并返回了日期时间类型,但我无法在报告中对它们进行格式化。

我的查询结果:

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

以前使用报表构建工具的经验告诉我,将现有对该字段的引用替换为该字段的格式声明,如下所示:

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

显然,这不是我习惯的旧 SSRS 类型的报表构建。我已经用谷歌搜索了这个并搜索了 Stack Overflow,但对答案并不满意。我看过一些计算字段,但这似乎有点矫枉过正。我不想计算一些东西,只是格式化它。

我错过了什么?

【问题讨论】:

  • 我很久没有使用SSRS了,但我认为你可以将单元格格式化为文本,然后将公式显示为文字。像这样。

标签: sql-server reporting


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复。我明白数据类型没有格式;我的意思是原始查询返回了一个没有任何时间数据的 DATE;我修改它以返回 DATETIME。这正确地给出了提供所需数据粒度所需的二进制信息。话虽如此,您关于 F4 和格式的提示正是我所需要的,并且由于您的回答,我继承的报告现在运行良好,我将其标记为正确。非常感谢!
  • 很高兴帮助了@markaaronky。当您需要以某种方式查看数据类型时,格式属性是您的选择;我还(个人)发现 Format 函数不可靠。
猜你喜欢
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多