mysql 类型是date类型 
Oracle 是date类型
sql:
select * from tb_schedule t where to_char(t.schdate,'yyyy-mm-dd') = '2010-04-13'
在Oracle能执行
可是在mysql里面没有to_char方法 报错在mysql里写的sql到Oracle又不能执行
有什么通用的方法吗?日期存的都是 yyyy-mm-dd的格式

解决方案 »

  1.   

    要不把数据库日期字段类型(MySQL/Oracle)变成字符类型
      

  2.   

    怎么统一?
    ORACLE语法是:select sysdate from dual where sysdate between to_date('2012-04-22',yyyy-mm-dd) and to_date('2012-04-23',yyyy-mm-dd)
    --输入的时间范围需要转换为日期型。SQL SERVER 语法是:select fdate from tablename where fdate between '2012-04-22' and '2012-04-23'
    --不需要转换
    --就算需要转换,语法也是:convert(datetime,fdate,120)或者CAST(fdate as datetime)
      

  3.   

    创建PrepareStatement 
    select * from tb_schedule t where t.schdate = ?
    pst.setDate(1,日期型数据)
      

  4.   

    可以在MySQL和Oracle中定义同名的函数,在这个自定义函数中调用各自数据库中提供的函数,完成日期的格式化。这样在应用程序中就可以用统一的函数调用进行日期的格式化了。其实,没必要这和麻烦,直接查询出日期类型,然后在应用程序中进行格式化罢。