FormatDate 的排序行为不正确

Sorting behavior incorrect with FormatDate

我正在使用 SAP Business Objects BI4 编辑 Webi 报告。

我有一份带有 table 的报告,其中我显示的日期格式如下:

=FormatDate([Sales Date];"dd-MMM-yyyy")

最初,销售日期维度的格式为 "mm/dd/yyyy"。

我想按此格式化日期维度按升序对我的 table 进行排序,所以我只是 select 我的 table > 右键单击​​ > select 排序然后我 select =FormatDate([销售日期];"dd-MMM-yyyy") 按升序排列。

我的问题是,排序行为不正确,结果如下:

Sales Date
----------
01-AUG-2006
----------
01-JUL-2010
----------
02-FEB-2006
----------
03-AUG-2005

正如你在上面看到的那样,排序似乎只由 "day" 值完成,它完全忽略了 "month" 和 "year"。

我的对象在宇宙中被正确定义为"Date"。

当我不使用格式 "dd-MMM-yyyy" 并保留销售日期的原始格式时,排序正确完成。

有什么建议吗? 谢谢!

FormatDate 的 return 数据类型是字符串。这就是为什么排序会乱序的原因,因为它将对字符串值而不是日期值进行排序。

您有两个选择:

  1. 使用(自定义)日期格式设置日期格式(当文档处于 Edit 模式时,在 Formatting 部分)。您需要使用 RIA(Java 小程序)来定义您自己的自定义日期格式。或者,您可以使用其中一种可用格式。这不会改变数据类型,只会改变表示,因此排序应该没问题。

  1. 如果您仍想使用 FormatDate 选项,您可以在第二列中添加 [Sales Date],使用它对数据进行排序,然后隐藏该列。