使用FormatDate的排序行为不正确
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FormatDate的排序行为不正确相关的知识,希望对你有一定的参考价值。
我正在使用SAP Business Objects BI4编辑一个Webi报表。
我有一个带有表格的报表,其中显示的日期格式如下。
=FormatDate([Sales Date];"dd-MMM-yyyy")
最初,销售日期维度的格式是 "mmddyyyy"。
我想通过这个格式化的日期维度按升序排列我的表,所以我只需选择我的表>;右键单击>;选择排序,然后我选择=FormatDate([Sales Date]; "dd-MMM-yyy")按升序排列。
我的问题是,排序行为不正确,因为结果如下。
Sales Date
----------
01-AUG-2006
----------
01-JUL-2010
----------
02-FEB-2006
----------
03-AUG-2005
如上图所示,排序似乎只按 "日 "的值进行,完全忽略了 "月 "和 "年"。
我的对象在宇宙中正确定义为 "Date"。
而且当我不使用格式化 "dd-MMM-yyy "而保持销售日期的原始格式时,排序也能正确完成。
有什么建议吗?
答案
返回的数据类型 FormatDate
是一个字符串。这就是为什么排序会失序的原因,因为它会对字符串值而不是日期值进行排序。
你有两个选择。
- 使用(自定义)日期格式来格式化日期(在 格式化 部分,当您将文档放在 编辑 模式)。) 你需要使用RIA(Java小程序)来定义你自己的自定义日期格式。或者你也可以使用其中一种可用的格式。这将不会改变数据类型,而只是改变显示方式,因此排序应该没有问题。
- 如果您仍然想使用RIA(Java小程序)来定义您自己的日期格式。
FormatDate
选项,您可以添加[Sales Date]
在第二列中,使用它对数据进行排序,然后隐藏该列。
以上是关于使用FormatDate的排序行为不正确的主要内容,如果未能解决你的问题,请参考以下文章