Oracle日期列显示错误的值

时间:2014-03-14 17:26:59

标签: sql oracle date oracle11g

我试图在表格中的日期列中识别问题。 该数据库是Oracle 11g。

情况是: 当我运行以下查询时:

select to_char(data_val, 'DD/MM/YYYY'), a.data_val from material a order by a.data_val asc;

结果的第五行是:

00/00/0000  | 29/06/5585 00:00:00
00/00/0000  | 29/06/5585 00:00:00
00/00/0000  | 29/06/5585 00:00:00
11/11/1111  | 11/11/1111 00:00:00
01/01/1500  | 01/01/1500 00:00:00

问题是:

为什么前三行的to_char函数返回不同的日期值(00/00/0000)?

为什么日期29/06/5585是ASC日期订单的第一个结果?它是正确的使用:按data_val DESC排序,不会吗?

1 个答案:

答案 0 :(得分:0)

我们遇到了同样的问题。我可以确认" date"列确实是DATE类型。 有问题的日期是2014年5月1日,所以它很可能与原帖中的大年号无关。当你用日期执行一些计算时,问题是固定的,即TO_CHAR(数据)将全部为零,TO_CHAR(数据+ 1)将如预期的那样,甚至TO_CHAR(数据+1 -1)也是正确的。 (TO_CHAR(原点+ 0)没有帮助:))

基于DUMP值,似乎问题是我们已经设法存储了2014年4月31日而不是2014年5月1日(现在调查这是如何可能的; Informatica + Oracle 11.2,I相信)。