【问题标题】:Trouble maintaining date format when exporting from ssrs to excel从 ssrs 导出到 excel 时无法维护日期格式
【发布时间】:2019-05-01 09:07:44
【问题描述】:

我正在使用 SSRS 从 Oracle 中提取数据 - 这包括一个名为“created”的日期时间字段 - 当我从 ssrs 生成一个 excel 文件时,我希望日期字段在 Excel 中显示为自定义 dd-mmm-yy - 但是它目前显示为general(在Excel中,右键单击字段,字段属性)

我已经在报告生成器中尝试过:

将数字格式更改为“N”

=CInt(Fields!FieldValue.Value)

将数字格式更改为dd-MMM-yy

在 SSRS 报告生成器中,我在 SQL 查询中创建了“已创建”字段,如下所示:

upper r(to_char(UNI72LIVE.PR_BLPU.CREATED_D,'dd-mon-yy')) as Created

这在报表生成器中正确显示,但在 Excel 中查看该字段时出现问题

【问题讨论】:

  • 除了你的问题,没有理由像你一样使用 UPPER 函数。只需将 to_char 格式掩码的“mon”部分设为大写:to_char(UNI72LIVE.PR_BLPU.CREATED_D,'dd-MON-yyyy')。另外,使用 4 位数的年份。 20 年前,像我这样的人大军在这件事上大打出手。如果您还太小记不住,请查看“Y2K 问题”。

标签: excel oracle reporting-services


【解决方案1】:

如果您使用 to_char 将日期字段转换为字符串,则 Excel 将在该单元格中包含文本而不是日期,并且无法将其视为日期进行排序和计算。只需将日期字段作为 SQL 语句中的普通字段,使其保持为日期。

在您的单元格中,将 Value 属性设置为字段值(无格式):

=Fields!CREATED_D.Value

Format 属性设置为dd-MMM-yy,日期将以您想要的格式显示。

现在日期字段将作为实际日期值(而不是文本)导出到 Excel,并且日期的格式将正确设置。

【讨论】:

    【解决方案2】:

    你需要在文本框的表达式中应用日期格式,

    =Format(CDate(Fields!FieldValue.Value), "dd-MM-yyyy")
    

    AND您需要转到此文本框属性:文本框属性>数字>日期并选择格式日期

    当然,您的语言必须设置为一个值。 这样,当您将其导出到 Excel 时,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多