今天我在oracle 10g下用to_date(parameter,'yyyy-mm-dd hh24:mi:ss')作为检索条件,在公司内部测试的时候没有问题
可是在用户处测试在执行该SQL文时会异常,提示无效的月份,而且是有的机子会异常,有的不会。
小弟刚入行,希望各位大哥给指点指点!
可是在用户处测试在执行该SQL文时会异常,提示无效的月份,而且是有的机子会异常,有的不会。
小弟刚入行,希望各位大哥给指点指点!
把不正确的数据修改正确后就可以了。
比如某个字符串为 09/18/08 20:00:00
这样你的转换就不对了
用户那边下班了,没来的及试,不知道行不行
为什么不用date型呢?date型也就7个字节,varchar保存日期肯定超过7个字节的,而且容易格式错误
ps:说白了还是代码写的有问题,没有对parameter参数进行固定的格式转换。
那就是某个机器日期格式设置的问题了。我更习惯于用to_char转换,然后统一用char做比较。
另外,我们公司的开发规定,对oracle的软件开发,涉及日期时间的一律用varchar2。
SQL> SELECT TO_DATE('13-JAN-2008','DD-MON-YYYY','NLS_DATE_LANGUAGE=AMERICAN') "MY_DATE" FROM DUAL;MY_DATE
-----------
1/13/2008SQL>