FormatDate

时间:2016-07-22 09:51:40

标签: sorting date sap business-intelligence business-objects

我正在编辑Webi报告(使用SAP Business Objects BI4)。 我有一个表格的报告,其中我显示了一个格式如下的日期:

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

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

我想按照这个格式化的日期维度按升序排序我的表格,所以我只选择我的表格>右键单击>选择排序,然后按升序选择= FormatDate([Sales Date];“dd-MMM-yyyy”)。

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

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

正如您在上面所看到的,似乎排序仅由“日期”值完成,并且它完全忽略了“月”和“年”。<​​/ p>

我的对象在宇宙中被正确定义为“日期”。

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

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

FormatDate的返回数据类型是一个字符串。这就是排序将无序的原因,因为它将对字符串值进行排序而不是日期值。

您有两种选择:

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

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