我有一个使用 Oracle 11g 查询填充的网格,该查询返回带有时区字段的 TIMESTAMP(6) 以及其他字段。当我选择要显示的数据的日期范围从 12/26/2014 到 1/5/2015,然后尝试按此列(asc 或 desc)排序时,它无法正确排序。例如,按描述顺序,它显示从 01/01 到 01/05,然后从 12/26 到 12/31。看起来像字符串排序。
我猜一个带有时区的时间戳(6)字段包含的值,例如 21-JAN-2015 18:17:16:00000 美国/东部不被识别为日期时间,而是一个字符串。有没有办法解决这个问题?
将评论转换为答案:
有许多选项:
(i) 依靠数据库对数据进行正确排序 - 出于性能原因,您可能希望阻止这种情况。
(ii) 指示网格按原样处理时间戳列(而不是字符串列),这可能是不可能的。
(二)使用其他网格组件,该组件可正确处理日期列。
(iii) 使用隐藏(字符串)列,时间戳格式为"YYYY-MM-DD HH24..."用于排序。
(iv) 编写自己的排序例程。
如果您认为合适,请随时提供更多详细信息。