Oracle中日期类型的问题
出错环境
服务器数据库版本10.0.2 64位
客户端版本 10.0.1 32位
服务器上的一个表有一个日期字段存储的日期为 0817-1-22(817年1月22号)
使用select installdate from table where to_char(installdate, 'yyyy')='0817'
在plsqldev工具中显示为 0000-0-00(显示错误)
在Oracle工具sql plus中显示为 22-1月 -17(显示正确,不要怀疑就是这么显示的)
这样取出的日期在某些情况下使用会报日期类型不正确的错误
我在我自己机器上模拟了一个类似环境
服务器数据库版本10.0.1 32位
客户端版本 10.0.1 32位
同样使用上面的sql查询
在plsqldev工具中显示为 0817-1-22(显示正确)
在Oracle工具sql plus中显示为 22-1月 -17(显示正确)
这样取出的日期可以正常使用
我想问一下是什么原因产生第一种情况中的错误,应该怎样解决才行。
我能想到的可能原因:
1.64位和32位之间不兼容?
2.客户端和服务器版本不同?(10.0.1和10.0.2有这么大差别吗)
我现在的解决方法:
to_char后再to_date即可正常显示和使用了。不过我希望有更加好的解决方法。