在oracle中date型字段直接加减即可得出相差多少天,可换算成分钟。
现在问题是你的mydatetime存储精度是否到分钟?还是差一点无所谓

解决方案 »

  1.   

    select (sysdate-mydatetime)*24*60 from tablename;
      

  2.   

    mydatetime存储是到秒的!!!!!我执行:
    select mydatetime-sysdate from mytable
    确实可以出东西,但都是小数
    我想得到他们两者直接相差的分钟数应该怎么办呢?
      

  3.   

    那是天数啊,*24*60不就是分钟数了吗?
    用zhaoyongzhu(zhaoyongzhu) 写的就可以啊。
      

  4.   

    zhaoyongzhu(zhaoyongzhu) 的就是分钟数啊,如果不想要小数
    可以trunc()掉小数部分
    SQL> select (sysdate-to_date('2002-11-10','yyyy-mm-dd'))*24*60 from dual;(SYSDATE-TO_DATE('2002-11-10','YYYY-MM-DD'))*24*60
    --------------------------------------------------
                                               6718.65SQL> select trunc((sysdate-to_date('2002-11-10','yyyy-mm-dd'))*24*60) from dual;TRUNC((SYSDATE-TO_DATE('2002-11-10','YYYY-MM-DD'))*24*60)
    ---------------------------------------------------------
                                                         6718
      

  5.   

    INTERVAL data types are used to store the difference between two datetime     values. You specify the interval data types by using the syntax:     INTERVAL <interval qualifier>     Examples:      INTERVAL YEAR TO MONTH      INTERVAL DAY (6) TO SECOND (5)
      

  6.   

    同上
    mydatetime存储是到秒的,相减的时候也是计算到秒的
      

  7.   

    谢谢各位
    我在JAVA中执行:
    select floor((sysdate-mytime)*24*60) as mytime from mytable
    再用rs.getString("mytime")或rs.getInt("mytime")
    取出的结果都是0,但在SQLPLUS中直接执行那条SQL,
    mytime都是大于0的整数
    这是为什么????
      

  8.   

    eg:  select trunc((sysdate-  TO_DATE('2002111412:11', 'YYYYMMDDHH:MI'))*24*60,0) from dual
      

  9.   

    select trunc((sysdate-  TO_DATE('2002111412:11', 'YYYYMMDDHH:MI'))*24*60,0) from dual