日期:2014-05-17  浏览次数:21055 次

插入数据库的date格式不对,怎么解决啊!!
现在遇到一个头疼的问题,希望得到解答,谢谢!
描述如下:我向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';

怎么还是不行啊。搞不懂了。好急啊!!!


------解决方案--------------------
date类型就是时间类型,没有格式。

所谓的格式是把日期转化为字符串的时候,字符串的格式。

所以你插入了日期2007-10-08 16:52:49,没有任何问题。

只是你再想把日期取出来的时候还需要用格式取。

select to_char( yourdate, 'YYYY-MM-DD HH24:MI:SS ') from KFWEB_VISIT;

这样你就可以看到你想看到的格式了。
------解决方案--------------------
在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'形式的值。