前段时间忙于项目移植,从sqlServer到Oracle。其中踩了好多坑 ,记录下一起分享下。
1、时间精度
一般项目中的表中都有时间类型的值,当遇到普通的时间类型,比如说只需要精确到毫秒级,
Oracle和sqlServer中都用很好的一个datetime类型支持转换,其中sqlServer的精度要高一级别,
sqlServer的date类型能支持到毫秒级以下,即精度表示为'yyyy-mm-dd,hh24:mi:ss.ff'
可以看到在毫秒级(SS)以下还有一级(ff)具体可以表示为下图所示
然而,在Oracle中,to_date类型只能支持到'yyyy-mm-dd,hh24:mi:ss
由于code中传入的都是String类型的时间,精度都为.ff级别,而且系
统要求计算精度也在.ff级别。因此这对于我们项目support 到Oracle
是一件非常蛋疼的事情。因此找到了Oracle中的to_timestamp()函数
使用方法的话就如下面所示
to_timestamp('2011-12-15 10:40:10.345', 'yyyy-MM-dd HH24:MI:ss.ff')