由于公司业务增长较快,数据库oracle压力越来越大,公司考虑在应用服务器 Websphere 和 数据库oracle之间增加 timesten数据库来实现数据的读写分离,另外由于timesten是内存数据库,所以查询速度上要优于 oracle 数据库,两个数据库虽然都是oracle公司的产品,但是在很多sql的写法上是不相同的,下面就对此项工作中遇到的sql不同的写法做个介绍:
oracle中查询当前日期的前23小时可以这样写
<code> select sysdate - 23/24 from dual; </code>
这样的写法在timesten中是会报错的,两个数据库通用的写法是这样的
<code> select SYSDATE - INTERVAL '23' hour from dual; </code>
但是有另外的关于to_date的就没有通用的写法了
oracle中可以这样写
<code> (to_date(?,'yyyy-mm-dd') - trunc(sysdate)) </code>
但是在timesten中只能这样写
<code> (EXTRACT(day FROM to_date(?,'yyyy-mm-dd') - trunc(sysdate))) </code>
暂时只发现这两种写法的不同了,而且第二种写法还没有找到两边通用的写法,后续的工作中发现了再贴上来
这个是oracle官方timesten的的地址
http://www.oracle.com/technology/products/timesten/index.html
大家可以去查看官方的文档白皮书来了解更多关于timesten的知识