varchar2或者char到date能否进行隐式转换,取决于你输入字符串的格式是否是本session的时间格式(这个每个客户端机器都可以自己设,PL/SQL工具选项Tools-Preferences-NLS Options-Date或者glogion.sql或者注册表等),这样就有可能你一个格式在不同机器不同窗口插入会有不一样的结果; 可以通过select * from V$NLS_PARAMETERS where parameter='NLS_DATE_FORMAT'来看到格式,也可以修改,然后再对应格式插入
比如我当前session的NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE',那么我直接可以用'12-4月-2013'的字符串格式插入到一个DATE类型的column中。
其实你也可以新开一个窗口建立一个新的SESSION,并且修改这个SESSION的NSL_DATE_LANGUAGE值为AMERICAN:ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';现在你可以在这个窗口中直接插入'12-JAN-2013'格式的字符串到DATE的COLUMN
Sorry,我都不怎么会JAVA,但是我觉得有可能是操作系统影响,首先你必须保证每个客户端的日期格式是一样的
Sorry,我都不怎么会JAVA,但是我觉得有可能是操作系统影响,首先你必须保证每个客户端的日期格式是一样的
操作系统的语言不同有关系吗?
Sorry,我都不怎么会JAVA,但是我觉得有可能是操作系统影响,首先你必须保证每个客户端的日期格式是一样的
操作系统的语言不同有关系吗?
怕有些全英文版的不支持中文字符
DateFormat formate = new java.text.SimpleDateFormat("yyyy/MM/dd");
java.util.Date date = formate.parse("2013/12/23");
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
还是 建议先自己手动转换为sql.Date。
可以通过select * from V$NLS_PARAMETERS where parameter='NLS_DATE_FORMAT'来看到格式,也可以修改,然后再对应格式插入