数据库迁移碰到的问题:这段SQL表示搜索日期早于to_date的内容
query=query+ " and {createdate}<=to_date('"+timeend+" 23:59:59','YYYY-MM-DD HH24:mi:ss')";
page.setQueryString(query);
to_date()是Oracle特有的函数,用来转换时间格式,在系统设计的时候,‘timeend’是传递过来的字符串类型的值
现在想要改成不同数据库都支持的话,必须把to_date()给替换掉,同时又不影响整个SQL语句表达的最后结果!
我尝试使用API中的Date类或者其他的类,似乎都不能解决问题,createdate的类型是Date,to_date起到的作用就是把字符串转化为日期。
比如用户选择的日期是2007-8-8,最后转化后还是2007-8-8,所以使用
SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd");
d = sdf.parse(bYmd); 等方法是不能成功的。
最后有种解决方法是,另外写个类,写个方法判断数据库的类型,把to_date再封装次,如果是Oracle就不to_date当做字符串传递过去,如果不是则使用对应各种数据库可以转化日期的方法。
比如
String sql=query+ " and {createdate}<=to_date('"+timeend+" 23:59:59','YYYY-MM-DD HH24:mi:ss')";
B.getSql(sql);
如果判断是Oracle,则sql不变,如果不是,则修改to_date为对应数据库的方法。
有种最简单的方法就是把数据库字段类型改了去

,可惜经理可能会不同意。
不知道上面方法的可行性怎么样..还有没有更好的方法。
[/list]
分享到:
相关推荐
本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...
在IT行业中,数据库迁移是一项复杂且关键的任务,尤其是在从Oracle这样的高级商业数据库系统迁移到开源的MySQL时。本文将深入探讨这个过程中的挑战和解决方案,重点关注数据迁移工具的选择及其优缺点。 首先,从...
以上只是Oracle常用问题的一部分,实际的“Oracle常用傻瓜问题1000问”涵盖了更广泛的领域,包括Oracle的高级特性、数据库设计、性能调优、数据库迁移等。通过学习这些问题及其解答,无论是新手还是资深的Oracle使用...
连接上Oracle服务器后,我们可以评估一下迁移SZZW数据库会不会碰到问题,并可以生成一个评估报告,告诉我们数据库里各种对象能够成功迁移的比例。 SSMA工具集可以帮助审计人员解决在审计数据采集中的困难,提高工作...
作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器。这在数据库的合并以及对数据库系统的代码表中某些代码的修改时需要做的工作之一。 我们来看...
由于两个数据库系统不能保证是连接的,无法采用Oracle的DBLink技术,因此FNDLOAD采用了数据文件作为两个系统间传递的中介。 控制文件是FNDLOAD工具的核心,控制文件由四部分组成:实体(entity)、段(section)、下载...