对包含时区的时间戳的数据表列进行排序

时间:2015-01-26 21:13:15

标签: c# datetime oracle11g timezone

我有一个使用Oracle 11g查询填充的网格,该查询返回TIMESTAMP(6)WITH TIME ZONE字段以及其他字段。 当我为2014年12月26日到2015年1月5日期间显示的数据选择日期范围,然后尝试按此列(asc或desc)排序时,它不能正确排序。例如,在desc顺序中,它显示从01/01到01/05,然后从12/26到12/31。看起来像字符串排序。

我猜测TIMESTAMP(6)WITH TIME ZONE字段包含的值如21-JAN-2015 18:17:16:00000 USA / EASTERN不被识别为日期时间而是字符串。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

将评论转为答案:

有很多选择:
(i)依靠数据库对数据进行正确排序 - 出于性能原因,您可能希望对其进行排序 (ii)指示网格处理时间戳列(而不是字符串列) - 这可能是不可能的。
(iia)使用不同的网格组件,它可以正确处理日期列 (iii)使用隐藏(字符串)列,时间戳格式为“YYYY-MM-DD HH24 ...”进行排序。
(iv)编写自己的排序程序。

如果您认为合适,请随时提供更多详细信息。