现在遇到一个头疼的问题,希望得到解答,谢谢!
描述如下:我向oracle一表插入一条数据,这条数据包含了一个类型为date的字段。我希望插进去的格式是:yyyy-mm-dd    hh24:mi:ss 。但是显示出来却是:yy-mm-dd 。
我的sql语句是:alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
insert into KFWEB_VISIT values(704,to_date('2007-10-08 16:52:49','YYYY-MM-DD HH24:MI:SS'),'127.0.0.1','fdsfs','fdsf');
已经使用了alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';怎么还是不行啊。搞不懂了。好急啊!!!

解决方案 »

  1.   

    是可以改变成yyyy-mm-dd hh24:mi:ss的。
    因为我实在ast里开发的,可以直接连数据库,查看里面的数据。是这个工具连数据库不好!后来我用sqlplus查看了一下,结果是对的。我做的这个是web的项目。我又将数据从数据库里读出来,打印在控制台下,但是却发现结果是这样的:2007-10-08 16:52:49.0     。为什么49后面有个小数点+0啊???太不解了!!
      

  2.   

    date类型就是时间类型,没有格式。所谓的格式是把日期转化为字符串的时候,字符串的格式。所以你插入了日期2007-10-08 16:52:49,没有任何问题。只是你再想把日期取出来的时候还需要用格式取。select to_char( yourdate, 'YYYY-MM-DD HH24:MI:SS ') from KFWEB_VISIT;这样你就可以看到你想看到的格式了。
      

  3.   

    在Oracle里,date型怎么显示是次要的,关键是你在取数据时用的SQL语句。就算Oracle里存的数据是'yyyy-mm-dd'的形式,只要你用
      select to_date(<字段名>,'yyyy-mm-dd hh24:mi:ss') from <表名>

      select to_char(<字段名>,'yyyy-mm-dd hh24:mi:ss') from <表名>
    你都可以取到'yyyy-mm-dd hh24:mi:ss'形式的值。