数据库存放的日期格式的值,比如 2014-12-10 下午 04:12:13 ,查询的时候使用 to_char(date,'YYYY-MM-DD HH24:MI'),数据库执行结果为 2014-12-10 16:12,在Java中执行SQL,查询结果拿到前台变成了 2014-12-10 16? ,使用 to_char(date,'YYYY-MM-DD HH24-MI') 到前台则是2014-12-10 16-12,为什么第一种会出现这样的情况?求解。
还有如果你是用sql plus(以后问问题请用这样的描述,不要说拿到前台,别人会搞不清楚你到底在用什么工具)。你可以用以下语句改变当前session的date format
alter session set NLS_DATE_FORMAT = 'mm-dd-yyyy HH24:mi:ss';
然后你再执行你的SQL,如果这个改变生效,你可以修改你的注册表的NLS_DATE_FORMAT,改成mm-dd-yyyy HH24:mi:ss,你就不用再麻烦了
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG\NLS_DATE_FORMAT
to__char(date,'yyyy-mm-dd hh24:mi:ss') 用这个试试,单步调试看看后台拿到的值是否正常,如果正常在前台展示的时候再格式化一下显示(使用了某些组件或者控件之后确实可能会存在这样的问题,比如ext.net,浏览器不同显示的效果可能还不一样,这时就需要在页面显示时再格式化一下)。
你先告诉我如果你在前台执行,得到什么结果,我想先判断是你数据的问题,还是环境的问题
select sysdate from dual;