现在有一ORACLE中的SQL语句,需要移植到DB2中,请问该SQL改如何写
ORACLE中:select floor(months_between(date1,date2)) from A
date1,date2分别为表中的两个字段 ,都为日期型
DB2中如何使用写SQL,得出的结果与上述语句一致。请大侠们解答一下,谢谢
ORACLE中:select floor(months_between(date1,date2)) from A
date1,date2分别为表中的两个字段 ,都为日期型
DB2中如何使用写SQL,得出的结果与上述语句一致。请大侠们解答一下,谢谢
解决方案 »
- oracle 数据库安装包
- Oracle 连接字符串与 Oracle ODBC 64bit 驱动问题
- 装好的Oracle10G,运行Enterprise Manager Database Control,找不到服务器,无法连接。
- 如何避免oralce insert时等待问题
- 一个sql语句中的字符串等值判断问题,在线等
- 在存储过程中建立临时表需要哪种权限?
- 在IMP的时候出现的错误?
- 有一个字段含有固定10位字符,如何实现查询最后一位和倒数第二位相同的记录呢?
- 一个困扰我多时的问题!
- 安装oracle出现的问题
- 关于SQL合并字段的问题。。。急!!!
- 关于ORACLE日志的问题 高手赐教 有高手知道吗
没有考虑floor的影响,这个 有点问题的。
如果前者日期的天数不等于后者天数,在ORACLE中 计算后结果会是小数,二经过floor处理后会在结果后再-1
二再DB2里面 因为 year(date2)-year(date1))*12+month(date2)-month(date1)运算的始终为整数,结果会与ORACLE不同
这个不行的,只是计算出了天数,而我需要的是 计算出两个日期之间的月份数。并且要和ORACLE中的结果保持一致
oralce 里面的month_between就是天数除以31后的小数,上面的30是不对的。
select floor((DAYS(date2)-DAYS(date1))/31) from A;