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 数据类型是字符串。这就是为什么排序会乱序的原因,因为它将对字符串值而不是日期值进行排序。
您有两个选择:
- 使用(自定义)日期格式设置日期格式(当文档处于 Edit 模式时,在 Formatting 部分)。您需要使用 RIA(Java 小程序)来定义您自己的自定义日期格式。或者,您可以使用其中一种可用格式。这不会改变数据类型,只会改变表示,因此排序应该没问题。
- 如果您仍想使用
FormatDate
选项,您可以在第二列中添加 [Sales Date]
,使用它对数据进行排序,然后隐藏该列。
我正在使用 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 数据类型是字符串。这就是为什么排序会乱序的原因,因为它将对字符串值而不是日期值进行排序。
您有两个选择:
- 使用(自定义)日期格式设置日期格式(当文档处于 Edit 模式时,在 Formatting 部分)。您需要使用 RIA(Java 小程序)来定义您自己的自定义日期格式。或者,您可以使用其中一种可用格式。这不会改变数据类型,只会改变表示,因此排序应该没问题。
- 如果您仍想使用
FormatDate
选项,您可以在第二列中添加[Sales Date]
,使用它对数据进行排序,然后隐藏该列。