select date_colum, to_char(date_colum,'yyyymmdd') from table ;
查询的结果如图所示:请问这是怎么回事,请高手指教,不胜感激!
date_colum 字段是date 类型的 , 还有一点是我的数据时通过PB前台操作保存到ORACLE中的,请问如何解决这个问题 ?
多谢各位热心帮忙,问题我找到了,这个问题跟大家分享一下,主要原因是我在PB前台保存的时候把datime类型强制转换成date类型,但是ORACLE数据库认为两个类型是一样的,所以在保存的时候只保存了一部分进去,例如2011-05-05 保存到数据库中后变为 2011-05-05 ???? ,所以在通过SQL取值时出现全部是0的闹剧,而1998-1-1那个没有乱码是因为恰巧那个值保存的时候没有保存为1998-1-1 ????,所以只有这一个是正常的。希望能够帮助更多的人。
我用的是PLSQLDEV版本8 上执行的结果,刚才我试了一下sqlplus 效果和原来的效果是一样的也都是‘00000000’ ,请问这是什么原因
追答这个真不知道怎么回事,你用sqlplus或者pl/sql developer插入几条数据,然后检索看看。
我还怀疑过你的字段类型是否正确,可是我用varchar2试的时候根本就报错
你也可以试试下面的,完全脱离你原表的情况。
create table ta(va varchar2(20),da date);
insert into ta values('2012-2-2',to_date('2012-2-2','yyyy-mm-dd'));
insert into ta values('2012-1-1',to_date('2012-1-1','yyyy-mm-dd'));
select * from ta;
--select va, to_char(va,'yyyymmdd'),da, to_char(da,'yyyymmdd') from ta ; -- 报错
select da, to_char(da,'yyyymmdd') from ta ;